예제 #1
0
        public static Lista Ordenar(this Lista lista,
                                    IComparer comparador)
        {
            object aux;
            bool   houvetroca;

            do
            {
                houvetroca = false;
                Nodo no = lista.RetornaPrimeiro();
                while (no.Proximo != null)
                {
                    if (comparador.Compare(no.Dado, no.Proximo.Dado) > 0)
                    {
                        aux             = no.Dado;
                        no.Dado         = no.Proximo.Dado;
                        no.Proximo.Dado = aux;
                        houvetroca      = true;
                    }
                    no = no.Proximo;
                }
            }while (houvetroca == true);
            return(lista);
        }