Tipo de títere

Stooge sort (Clasificación por partes [1] , Wandering sort [2] ) es un algoritmo de clasificación recursivo con complejidad temporal . El tiempo de ejecución del algoritmo es, por lo tanto, extremadamente largo en comparación con los algoritmos de clasificación eficientes como Merge Sort .

El algoritmo para ordenar una lista de elementos es el siguiente:

Ejemplos de implementación

algoritmo stoogesort ( matriz L , i = 0 , j = longitud ( L ) - 1 ) si L [ j ] < L [ i ] entonces L [ i ] L [ j ] si j - i > 1 entonces t = ( j - i + 1 ) / 3 stoogesort ( L , i , j - t ) stoogesort ( L , i + t , j ) stoogesort ( L , i , j - t ) return L

Ejemplo en C

void stoogesort ( int * elemento , int izquierda , int derecha ) { registro int tmp , k ; if ( elemento [ izquierda ] > elemento [ derecha ]) { tmp = artículo [ izquierda ]; artículo [ izquierda ] = artículo [ derecha ]; artículo [ derecha ] = tmp ; } si (( izquierda + 1 ) >= derecha ) volver ; k = ( int )(( derecha - izquierda + 1 ) / 3 ); Stoogesort ( elemento , izquierda , derecha - k ); stoogesort ( elemento , izquierda + k , derecha ); Stoogesort ( elemento , izquierda , derecha - k ); }

Ejemplo de JavaScript

función stoogesort ( elemento , izquierda , derecha ) { if ( izquierda === indefinido ) izquierda = 0 ; if ( derecho === indefinido ) derecho = artículo . longitud - 1 ; var tmp , k ; if ( elemento [ izquierda ] > elemento [ derecha ]) { tmp = elemento [ izquierda ]; artículo [ izquierda ] = artículo [ derecha ]; artículo [ derecha ] = tmp ; } if (( izquierda + 1 ) >= derecha ) return ; k = Matemáticas . piso (( derecha - izquierda + 1 ) / 3 ); Stoogesort ( elemento , izquierda , derecha - k ); stoogesort ( elemento , izquierda + k , derecha ); Stoogesort ( elemento , izquierda , derecha - k ); }

Notas

  1. Kormen, T. , Leizerson, C. , Rivest, R. Algorithms: construcción y análisis = Introducción a los algoritmos / Per. De inglés. edición A. Shen. — M. : MTsNMO, 2000. — 960 p. - ISBN 5-900916-37-5 .
  2. Kormen, T. , Leizerson, C. , Rivest, R. , Stein, K. Algoritmos: construcción y análisis = Introducción a los algoritmos / Ed. I. V. Krasikova. - 2ª ed. - M. : Williams, 2005. - 1296 p. — ISBN 5-8459-0857-4 .

Literatura

  • Kormen, Thomas H., Leiserson, Charles I., Rivest, Ronald L., Stein, Clifford. Capítulo 7. Quicksort // Algoritmos: construcción y análisis = Introducción a los Algoritmos. — 2ª edición. - M. : "Williams" , 2005. - ISBN 5-8459-0857-4 .