Ordenamiento por Inserción Binaria en C#

 Método de Ordenamiento por Inserción Binaria en C# 

                    int auxiliar;
                    int q;
                    int izqui;
                    int dere;
                    for (int i = 0; i < numeros.Length; i++)
                    {
                        auxiliar = numeros[i];
                        izqui = 0;
                        dere = i - 1;
                        while (izqui <= dere)
                        {
                            q = ((izqui + dere) / 2);
                            if (auxiliar < numeros[q])
                            {
                                dere = q - 1;
                            }
                            else
                            {
                                izqui = q + 1;
                            }
                            j = i - 1;
                            while (j >= izqui)
                            {
                                numeros[j + 1] = numeros[j];
                                j = j - 1;
                            }
                            numeros[izqui] = auxiliar;
                        }
                    }
                    for (int i = 0; i < longitud; i++)
                        Console.WriteLine(" " + numeros[i]);

2 comentarios: