Cada vez análisis de clasificación algoritmo de complejidad y presentación

1. Descripción general del algoritmo de ordenación

Por cualquier algoritmo de comparación de claves, la complejidad del tiempo no es mejor que NLGN. Asignar un rango no algoritmo de comparación de claves.
Aquí Insertar imagen Descripción

2. Clasificación de cambio (ordenamiento de burbuja)

algoritmos Introducción

La conmutación llamada, la secuencia se basa en el resultado de comparación registrados en dos claves para intercambiar las dos posiciones grabadas en la secuencia, cambio de característica de clasificación es: el movimiento de la tecla de popa de una secuencia de grabación grande, el más clave pequeña grabación se mueve a la parte frontal de la secuencia.

void swapsort (int a [])
{
for (int i = 1; i <= n; i ++) {
for (intj = i + 1; j <= n; j ++) {
si (a [i]> a [j ]) {
int temp = a [i];
a [i] = a [j];
un [j] = temp;
}
}
}
}

complejidad del tiempo

Para-i ejecutado N veces, en la primera pasada para-i, ejecutado por-j n 1-veces, durante la segunda pasada para-i, para-j realiza n-2 veces, ..., y finalmente en el para-i cuando de nuevo, para-j 0 tiempos de ejecución.
por lo tanto, T (n) = (n- 1) + (n-2) + ... + 1 + 0 = (n-1) * n / 2.

3. Combinar Ordenar

Algoritmo introdujo
es decir, la secuencia que debe clasificarse en varias subsecuencias, cada subsecuencia se ordena. Y entonces ordenado el conjunto sub-secuencias en una secuencia ordenada.
Aquí Insertar imagen Descripción
complejidad del tiempo
para el mejor y el peor caso promedio, el problema tendrá que romper la escala de hasta 1, por lo que la misma complejidad del tiempo de los tres.
   T (n) = 2T (n / 2) + θ (n) n> 1 cuando
   T (n) = θ (1 ) n = 1
analizada por Videos aparente árbol recursivo T (n) = cnlgn + cn , complejidad de tiempo es el grado de θ (NLGN), por supuesto, también O (NLGN).

4. Ordenación rápida

algoritmos Introducción

Rápida tipo propuesto por CAR Hoare en 1960. La idea básica es: un viaje al ordenar los datos que debe clasificarse en dos partes independientes, la parte en la que todos los datos que la otra parte de todos los datos a ser pequeñas, entonces este método de datos para las dos partes por separado rápido clasificación, su clasificación de todo el proceso puede ser de forma recursiva, con el fin de lograr los datos enteros en una secuencia ordenada.

El tipo de inserción

Algoritmo introdujo
ordenación por inserción es un mecanismo simple inserción, la idea básica es: que el registro se clasifica según su tamaño por un valor de clave se inserta en una secuencia ordenada ya almacenados, hasta que todos los registros en acabado Hasta el momento, obtener una nueva secuencia ordenada.

Colina de clasificación (inserción de paquete)

Shell tipo es el objeto de presionar el paquete de grabación en incrementos, el uso de inserción directa tipo cada algoritmo de ordenación; Con incremento se reduce gradualmente, más y más palabras clave comprendiendo cada una, cuando se reduce a un incremento, todo el archivo se divide en un solo juego, el algoritmo terminará. El método propuesto en 1959 debido a la DLShell llamado.
Este método es esencialmente un método de inserción de paquetes.

6. Selección Ordenar

Algoritmo introdujo
primer elemento de datos a ser seleccionado de entre el mínimo ordenado (o máximo) de un elemento almacenado en la posición de partida de la secuencia, y después de encontrar desde los elementos sin clasificar restantes a un mínimo (grandes) elementos, y luego poner hasta el final de la secuencia ordenada. Y así sucesivamente, hasta que todo el número de elementos de datos a ser ordenados es cero
FUNC SelectionSort (los nums [] Int32) {
longitud: = len (los nums)
para I: = 0; I <longitud; I ++ {
min: = I
para J .: = I + 1; J <longitud; J ++ {
IF los nums [J] <los nums [min] {
min = J
}
}
Temp: = los nums [I]
los nums [I] = las nums [min]
los nums [min] = TEMP
}
fmt.Println (los nums)
}

complejidad de tiempo
ya que sólo el intercambio de una parte inferior para-i, n-1, de modo que los tiempos de conmutación totales, y cada uno necesita intercambiar 3 veces asignado de modo que en todos los casos (el peor) complejidad del tiempo es 3 (n-1).

7 pila de clasificación

Algoritmo introdujo
HeapSort (Inglés: heapsort) se refiere a un algoritmo de dicha estructura una clasificación de datos diseñado para su uso montón. Una pila es casi completos estructura de árbol binario, propiedades y satisfacer deposita: índice o clave que es un nodo hijo es siempre menor que (o mayor que) su nodo padre.

Heapsort Void (int n, montón & H) {
Makeheap (n, H);
Removekeys (n, H, HS);
}

De hecho, el algoritmo es el montón construcción constante, y luego eliminar el nodo raíz. Cada vez que la eliminación del nodo raíz es el máximo, por lo que el equivalente de secuenciación completado. La siguiente figura es un ejemplo.
Aquí Insertar imagen Descripción

8. asignar un rango (radix especie)

Algoritmo introdujo
se puede comparar algoritmos de clave de clase.

Por ejemplo, los siguientes números son de base 10, la primera fila del lado izquierdo en primer lugar, en una pila diferente; a continuación, el segundo lugar de la izquierda, y finalmente el tercer puesto de la izquierda. Así que después de comprobar la mediana es el número de columnas y ordenada. Si una espera también es posible desde la derecha ahora, similar a la verdad.

Aquí Insertar imagen Descripción

Publicado 21 artículos originales · alabanza ganado 18 · vistas 1455

Supongo que te gusta

Origin blog.csdn.net/zephyr_wang/article/details/104264554
Recomendado
Clasificación