Ordenación de un conjunto de datos es uno de los problemas clásicos de la informática , por lo que no debería ser una sorpresa que una amplia variedad de métodos para la clasificación de Turbo C y otros lenguajes de haber sido concebido . Van desde los métodos ineficientes , pero fácil de implementar para mucho más rápido, pero más complejo métodos. El mejor algoritmo para una situación depende del tamaño esperado del conjunto de datos para ser resuelto y la importancia de la eficiencia. Burbuja Ordenar
The Bubble Sort es el más simple y más lento , algoritmo de ordenación . Es simplemente procede a través de la matriz , comparando el elemento actual para el elemento directamente en frente de ella . Si estos dos elementos están fuera de servicio , cambian lugares. Cuando la clase de burbuja llega al final , se comprueba para ver si algo lugares cambiados. Si lo hiciera , se comienza de nuevo desde el principio. Sigue recorriendo la matriz hasta que se las arregla para completar un recorrido completo sin hacer ningún intercambio. En promedio , esta toma O ( n ² ) el tiempo , pero si los datos se sabe que es muy casi ordenados , con tal vez sólo un elemento fuera de lugar , que puede funcionar en O ( n ) . Así que es un buen método para pequeños arreglos que no están ordenadas a menudo o matrices más grandes que se sabe que están ya ordenados ( o casi ) la mayor parte del tiempo.
Selección Ordenar
la Selección especie es un poco más refinado que la clase de burbuja . El algoritmo procede a través de toda la matriz de datos para encontrar el elemento más pequeño . Siempre que ese elemento es , que tiene su posición intercambiado con el primer elemento , y un contador toma nota de que el primer elemento de la matriz se conoce para ser correctamente ordenados . Se procede entonces a través de toda la matriz de nuevo , excepto para el primer elemento ( que es conocido por estar en el lugar correcto . ) Cuando se encuentra el elemento más bajo , que se mueve a la segunda posición y aumenta el contador para indicar que los dos primeros elementos son conocidos por ser ordenados . En general, la selección Ordenar trabaja en O ( n ² ) tiempo, pero tiene una ventaja: a lo sumo, sólo n- 1 cambia cada vez se producen en la matriz , ya que cada elemento sólo se mueve cuando se conoce su posición . Esto hace que sea un buen algoritmo en algunas situaciones exóticos donde escribir datos en la memoria toma drásticamente más que leerlo.
Ordenación rápida
Como su nombre lo indica, el QuickSort es rápido . En promedio, se puede realizar una ordenación en el tiempo O ( n log n). Pero es mucho más complejo de lo que muchos otros programas y requiere que el desarrollador sabe un poco acerca de los datos de la matriz antes de la mano . En primer lugar, se debe elegir un "valor de pivote " . Este es el valor que el desarrollador cree que está cerca de la mediana de todos los valores de la matriz . Cuanto mejor sea el valor pivote, más rápida será la ordenación rápida va a realizar. Entonces , la matriz se divide en dos grupos: los que sobrepasen el valor de pivote se mueven hacia el lado derecho , y aquellos por debajo del valor de pivote se mueven hacia el lado izquierdo . Esperamos que las dos partes están cerca de ser iguales en tamaño , pero no tienen que ser exactamente la misma . Por último , el algoritmo de ordenación rápida comienza de nuevo desde cero en cada lado , con el nuevo pivote valores elegidos , y estas mitades son finalmente dividido en cuartos. Cuando el quicksort ha subdividido la matriz de modo que cada sección tiene un único valor , la matriz ha sido solucionado .
Igual que la mayoría de los algoritmos recursivos , esto puede ser difícil de visualizar , por lo que se anima a ver el paso paso - ejemplo dado en la tercera referencia.