Burbuja mejorada

//Ordena burbuja mejorado
//www.codigomaldito.blogspot.com
#include
using std::cout;
using std::cin;
using std::endl;
void mostrarArreglo(const int[], int); //prototipo de funcion que recibeun arreglo constante
void ordenarArreglo(int[], int); //prototipo que modifica y ordena el arreglo
void intercambiar(int&, int&); //prototipo, intercambialos valores de dos elementos
int main()
{  const int tamano = 15;
  int arreglo[tamano] = {8,10,9,14,1,2,12,15,11,5,6,7,3,4,13};
  cout numero;
      a->numero=a->siguiente->numero;
      a->siguiente->numero=aux;
     }
    a=a->siguiente;
    }
   }
   b=primero;
   for(i=0;inumero);
    b=b->siguiente;
   }
   getch();
}
// Esta funcion solo sirve para imprimir en pantalla la lista original
void lista()
{
   int i;   struct lista *aux;
   aux=primero;
   clrscr();
   for(i=0;inumero);
    aux=aux->siguiente;
   }
   getch();
}
// Funcion principal que nos imprime en pantalla el menu
void main()
{   int n,i;
   int opcion;
   do{
    clrscr();
    gotoxy(35,2);printf("- Menu - \n");
    gotoxy(5,4);printf("1. Ingresar numeros");
    gotoxy(5,6);printf("2. Ver ordenamiento por insercion");
   gotoxy(5,8);printf("3. Ver ordenamiento por metodo de la burbuja");
    gotoxy(5,10);printf("4. Imprimir la lista");
    gotoxy(5,12);printf("5. Salir");
    gotoxy(3,15);printf("Opcion: ");
   scanf("%d",&opcion);
    switch(opcion)
    {
     case 1:
      crea();
      break;
     case 2:
      ins();
      break;
     case 3:
      burbuja();
      break;
     case 4:
     lista();
      break;
    }
   }while(opcion!=5);
    printf("Presione una tecla para salir ...");
    getch();
}

BURBUJA MEJORADA

Una nueva version del metodo de la burbuja seria limitandoel numero decomparaciones, dijimos que era inutil que se compare consigo misma. Si tenemos unalista de 10.000 elementos, entonces son 10.000 comparaciones que estan sobrando.Imaginemos si...