Anda di halaman 1dari 3

/* ---------------------------------------------------------------------Algoritmos.

No los explico porque ya lo hice en los artculos :-D ---------------------------------------------------------------------- */ int prBurbuja (int *iComparaciones, int *iIntercambios) { int i, j; int temp; for (i=1; i<iCantElem; i++) for (j=0; j<iCantElem - i; j++, (*iComparaciones)++) if (lista[j] > lista[j+1]) { temp = lista[j]; lista[j] = lista[j+1]; lista[j+1] = temp; (*iIntercambios)++; } return 0; } int prSeleccion (int *iComparaciones, int *iIntercambios) { int i; int temp, pos_men; for (i=0; i<iCantElem - 1; i++) { pos_men = menor(i, iComparaciones); temp = lista[i]; lista[i] = lista [pos_men]; lista [pos_men] = temp; (*iIntercambios)++; } return 0; } int menor (int desde, int *iComparaciones) { int i, menor; menor = desde++; for (i=desde; i<iCantElem; i++, (*iComparaciones)++) if (lista[i] < lista[menor]) menor = i; return menor; } int prInsercion (int *iComparaciones, int *iIntercambios) { int i, j, temp; for (i=1; i<iCantElem; i++) { temp = lista[i]; j = i - 1; while ( (lista[j] > temp) && (j >= 0) )

{ lista[j+1] = lista[j]; j--; (*iComparaciones)++; (*iIntercambios)++; } lista[j+1] = temp; (*iIntercambios)++; } return 0; } int prQuicksort (int *iComparaciones, int *iIntercambios) { int i; for (i=0; i<iCantElem; i++) lista[i] = lista[i]; prOrd_rap (0, iCantElem - 1, iComparaciones, iIntercambios); return 0; } void prOrd_rap (int inf, int sup, int *iComparaciones, int *iIntercambios) { int elem_div = lista[sup]; int temp ; int i = inf - 1, j = sup; int cont = 1; if (inf >= sup) return; while (cont) { while (lista[++i] < elem_div) (*iComparaciones)++; while (lista[--j] > elem_div) (*iComparaciones)++; if (i < j) { temp = lista[i]; lista[i] = lista[j]; lista[j] = temp; (*iIntercambios)++; } else cont = 0; } temp = lista[i]; lista[i] = lista[sup]; lista[sup] = temp; (*iIntercambios)++; prOrd_rap (inf, i - 1, iComparaciones, iIntercambios); prOrd_rap (i + 1, sup, iComparaciones, iIntercambios);

Anda mungkin juga menyukai