Ver Mensaje Individual
  #2 (permalink)  
Antiguo 05/04/2015, 10:24
superweb360
(Desactivado)
 
Fecha de Ingreso: abril-2015
Ubicación: España
Mensajes: 616
Antigüedad: 9 años, 1 mes
Puntos: 74
Respuesta: Ordenar array ascendente en C

Código C:
Ver original
  1. void bubble_sort(long list[], long n)
  2. {
  3.   long c, d, t;
  4.  
  5.   for (c = 0 ; c < ( n - 1 ); c++)
  6.   {
  7.     for (d = 0 ; d < n - c - 1; d++)
  8.     {
  9.       if (list[d] > list[d+1])
  10.       {
  11.         t         = list[d];
  12.         list[d]   = list[d+1];
  13.         list[d+1] = t;
  14.       }
  15.     }
  16.   }
  17. }

Sin embargo, tengo entendido que el método de la burbuja es el más lento que hay. Aquí te dejo el algoritmo de ordenación por selección, que es más rápido:

Código C:
Ver original
  1. void intercambiar (Dato * A, int i, int j)
  2. {
  3.     Dato tmp = A[i];
  4.     A[i] = A[j];
  5.     A[j] = tmp;
  6. }
  7. void ordenacion_seleccion (Dato * A, int N)
  8. {
  9.     int i, j, k;
  10.     for (i = 0; i < N - 1; i++)
  11.     {
  12.         for (k = i, j = i + 1; j < N; j++)
  13.             if (A[j] < A[k])
  14.                 k = j;
  15.         if (k != i)
  16.             intercambiar (A, i, k);
  17.     }
  18. }

Última edición por superweb360; 05/04/2015 a las 10:31