Recherche binaire d'un tableau trié

Je suis en train de rechercher un descendant tableau trié à l'aide de ce binaire code de la recherche. Cependant, après que je sorte, et essayez de la recherche, il ne veut pas revenir avec un résultat à, seulement une icône de chargement qui ne va jamais loin, comme si il a une boucle infinie. Je ne sais pas quel est le problème, car le code est logique.

C'est aspx avec le framework 4.0, c#. Merci à l'avance!

    protected void Button2_Click(object sender, EventArgs e)
    {
        String item = TextBox1.Text;
        int target = Convert.ToInt16(item);
        int mid, first = 0, last = mynumbers.Length - 1;

        //for a sorted array with descending values
        while (first<=last)
        {
            mid = (first + last) / 2;
            if (target < mynumbers[mid])
                first = mid + 1;
            if (target > mynumbers[mid])
                last = mid - 1;
            else
                Label11.Text = "Target " + item + " was found at index " + mynumbers[mid];

        }
Je pense que... ça devrait être first < last seulement pas <=
J'ai essayé aussi. Ce qui se passe alors est la même chose ou quelque chose de bizarre et me donne le résultat pour le dernier numéro.
En fait <= est correcte, vous devez aller à travers la boucle sur une == condition, car ils pourraient ont convergé sur la même position dans la dernière passe et vous avez besoin de voir si l'élément est égal à la cible.
Cela ramène toutes sortes de souvenirs, quand j'ai utilisé pour enseigner les algorithmes & structures de données en C++ à des cours du soir, ici à Saint-Louis...

OriginalL'auteur Emmanuel Buckley | 2011-11-09