Tipos Ordenamiento C
El método de sacudida es una optimización del método de intercambio directo o burbuja. En este algoritmo cada pasada tiene dos etapas.
Enla primera etapa “de derecha a izqierda” se trasladan los elementos mas pequeños hacia la parte izquierda del arreglo, almacenando en una variable la posición del ultimoelemento intercambiado.
En la segunda etapa “ de izquierda a derecha se trasladan los elementos mas grandes hacia la parte derecha del arreglo, almacenando en otravariable la posición del ultimo elemento intercambiado.
El algoritmo termina cuando en una etapa no se producen intercambios o bien, cuando el contenido de la variableque almacena en el extremo izquierdo del arreglo es mayor que el contenido de la variable que almacena el extremo derecho.
Void sacudida (itemType a[]`, int N){
Int i,j, izq, der, aux;
Izq = 2; der = N; j = N;
Do
{
For(I = der; I >= Izq; I--)
If (a[i – 1] > a[i])
{ swap (a, i, i -1);
j=i;
}
Izq = j + 1;
For(i = izq; ia[i])
{ swap (a, i, i-1)
j = i;
}
Der = j -1;
} while (izq left)
{
i = partition (a, left, right);
if (i – left > right – i)
{ sf.push (left);sf.push (right);right = i – 1; }
}
If (sf.empty ()) break;
Right = sf.pop(); left = sf.pop ();
}
}
#include
using std::cout;
using std::endl;
#include
using std::setw;#include
#include
const int tamano = 10, MAXIMO = 1000;
void quicksort( int * const, int, int );
void swap( int * const, int * const );
int main()
{
intarregloAordenar[ tamano ] = { 0 };
int loop;
srand( time( 0 ) );
for ( loop = 0; loop < tamano; ++loop )
arregloAordenar[ loop ] = rand() % MAXIMO;
cout
Regístrate para leer el documento completo.