Red de conocimiento del abogados - Ley de patentes - ¿Cuáles son algunos algoritmos simples en Python?

¿Cuáles son algunos algoritmos simples en Python?

1. Ordenación por inserción

La operación básica de la ordenación por inserción es insertar un dato en los datos ordenados que han sido ordenados, para obtener un nuevo número más uno. datos, el algoritmo es adecuado para ordenar una pequeña cantidad de datos y la complejidad del tiempo es O (n ^ 2). Es un método de clasificación estable. El algoritmo de inserción divide el array a ordenar en dos partes: la primera parte contiene todos los elementos del array, excepto el último elemento (lo que hace que el array tenga un espacio más para tener una posición de inserción), y la segunda parte sólo contiene este un elemento (es decir, el elemento que se va a insertar). Una vez ordenada la primera parte, este último elemento se inserta en la primera parte ordenada.

2. Ordenación Shell

La ordenación Hill (clasificación Shell) es un tipo de ordenación por inserción. También conocido como clasificación incremental reducida, es una versión más eficiente y mejorada del algoritmo de clasificación por inserción directa. La clasificación Hill es un algoritmo de clasificación no estable. Este método se debe a DL. Shell recibió su nombre de su propuesta en 1959. La clasificación Hill agrupa registros por un cierto incremento del subíndice y clasifica cada grupo utilizando el algoritmo de clasificación por inserción directa a medida que el incremento disminuye gradualmente, cada grupo contiene más y más palabras clave. Cuando el incremento disminuye a 1, se agrupa todo el archivo. en exactamente un grupo y el algoritmo termina.

3. Clasificación de burbujas

Visita repetidamente la secuencia a ordenar, compara dos elementos a la vez y los intercambia si están en el orden incorrecto. El trabajo de visitar la matriz se repite hasta que no se necesitan más intercambios, lo que significa que la matriz ha sido ordenada.

4. Clasificación rápida

Divida los datos que se van a ordenar en dos partes independientes mediante una sola pasada de clasificación. Todos los datos de una parte son más pequeños que todos los datos de la otra parte. Y luego use este método para ordenar rápidamente las dos partes de los datos respectivamente. Todo el proceso de clasificación se puede realizar de forma recursiva, de modo que todos los datos se conviertan en una secuencia ordenada.

5. Clasificación por selección directa

Idea básica: en el primer paso, seleccione el registro más pequeño entre los registros a ordenar r1 ~ r[n] e intercámbielo con r1; 2 pasadas, seleccione el registro más pequeño entre los registros a ordenar r2 ~ r [n], y cámbielo con r2 y así sucesivamente, la i-ésima pasada selecciona el registro más pequeño entre los registros a ordenar r [i] ~; registros r[n], cámbielos por r[i], de modo que la secuencia ordenada continúe creciendo hasta que se complete toda la clasificación.

6. Clasificación en montón

La clasificación en montón se refiere a un algoritmo de clasificación diseñado utilizando una estructura de datos como un árbol apilado (montón). Puede utilizar las características de las matrices para localizar rápidamente el elemento en un índice específico. El montón se divide en un montón de raíz grande y un montón de raíz pequeño, que es un árbol binario completo. El requisito de un montón raíz grande es que el valor de cada nodo no sea mayor que el valor de su nodo principal, es decir, A[PARENT[i]] >= A[i]. En la clasificación no descendente de una matriz, se debe utilizar un montón raíz grande, porque de acuerdo con los requisitos de un montón raíz grande, el valor más grande debe estar en la parte superior del montón.

7. Ordenación por combinación

La ordenación por combinación es un algoritmo de clasificación eficaz basado en operaciones de combinación. Este algoritmo es un ejemplo muy típico de la aplicación del método divide y vencerás. Fusione las subsecuencias ya ordenadas para obtener una secuencia completamente ordenada; es decir, primero ordene cada subsecuencia y luego ordene los segmentos de la subsecuencia. Si dos listas ordenadas se fusionan en una lista ordenada, se denomina fusión bidireccional.

8. Ordenación por Radix

La ordenación por Radix es una "clasificación por distribución", también conocida como "clasificación por cubo" o clasificación por contenedor, como sugiere el nombre, asigna los elementos que se van a ordenar. en ciertos "cubos" a través de parte de la información del valor clave para lograr el efecto de clasificación. El método de clasificación por base es una clasificación estable y su complejidad temporal es O (nlog (r) m), donde r es la base tomada y m. es el número de montones. En determinados momentos, el método de clasificación por base es más eficiente que otros métodos de clasificación por estabilidad.