C# Recherche par dichotomie dans un tableau

Recherche par dichotomie d’un élément dans une table classée soit une table contenant des prénoms, classés par ordre alphabétique. Nous désirons chercher l’indice de la case de la table où se trouve le prénom, si il s’y trouve. Pour cela, nous utiliserons la méthode de dichotomie (voir ci-dessous la méthode)

Donnez l’algorithme de la procédure qui recherche, par dichotomie le numéro du prénom recherché ou zéro s’il n’y est pas :

Principe de la recherche par dichotomie :

  1. Les prénoms sont classés par ordre alphabétique
  2. On connaît le nombre d’éléments de la table

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Exercice_tableau_7_dichotomie
{
class Program
{
static void Main(string[] args)
{
//debut

//declaration

string[] tprenom = new string[] { "agathe", "berthe", "chloé", "cunégonde", "olga", "raymonde", "sidonie" };
int median, rang, imin = 0, imax;
string prenom;
rang = tprenom.Length;
bool fin = false;

//saisie

Console.WriteLine("Saisir le prénom à rechercher !\n");
prenom = Console.ReadLine();

//traitement

imax = tprenom.Length - 1;

median = ((imax - imin) / 2 + imin);

while ((fin == false) && (imin != imax))
{

if (prenom == tprenom[median])
{
Console.WriteLine("Le rand du prénom que vous recherchez est :" + rang);
rang = (median + 1);
fin = true;
}
else if (prenom.CompareTo(tprenom[median]) < 0)
{
imax = median - 1;

}
else if (prenom.CompareTo(tprenom[median]) > 0)
{
imin = median + 1;
}

median = ((imax - imin) / 2) + imin;

}

Console.WriteLine("Attention, le prénom que vous cherchez n'existe pas dans la base de données\nErreur, vous êtes sortis de la boucle");
Console.ReadKey();

//resultat

//fin
}
}
}

This entry was posted in C#Sharp, Codes and tagged , , , , , , , , , , , , , , , , , , . Bookmark the permalink.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>