algoritmo de la burbuja y el código de pitón esquemática

Comparar el número de búsqueda binaria diferencia pasos y búsqueda lineal, se encontró que encontrar el número binario de pasos es O (log N), para encontrar la relación entre la junta lineal (N) es mucho más rápido.

notación O grande puede medir objetivamente la complejidad de los algoritmos de tiempo, la herramienta es algoritmo de comparación.

Big O puede ser comparado con otros algoritmos que se usan comúnmente, Big O si se encuentra por sus propios algoritmos más lento que los demás, debe dar un paso atrás y pensar en cómo optimizarlo, para convertirlo en una especie de gran rápido O.

Aunque no siempre hay margen de mejora, pero más en cuenta antes de determinar la codificación sigue siendo buena.

Será medido con un gran rendimiento O del algoritmo, algunas modificaciones en el algoritmo, para que el rendimiento.

Algoritmo de ordenación es un tema ampliamente estudiado ciencias de la computación. Durado muchos años, se ha desarrollado docenas de algoritmos que se centran en la pregunta: ¿cómo organizar un conjunto desordenado de los números en orden ascendente?

Ordenamiento de burbuja es un algoritmo de ordenación muy básico, los siguientes pasos.
(1) apunta a dos elementos adyacentes de la matriz (a partir de los dos primeros elementos de la matriz), la comparación de su tamaño.

 

 (2) si son un orden incorrecto (es decir, los valores superiores a la derecha a la izquierda), a las posiciones de intercambio.

 

 

Si el pedido ya es correcta, que este paso no hacer nada.
(3) Los dos punteros a la derecha de una célula.

 

 

Repetir el paso (1) y (2) paso, hasta que el puntero alcanza el final de la matriz.
(4) Repetir (1) a (3) pasos, hasta que todo el camino a través sin tener que hacer el intercambio, entonces es ordenada arreglo a.
Repite aquí (1) a (3) es un ciclo de paso, es decir, las etapas principales del algoritmo es "ciclo" ejecutado hasta que la secuencia correcta de toda la matriz.

Suponga que desea [4, 2, 7, 1, 3] especie. Ahora hay trastorno, nuestro objetivo es producir un mismo elemento de la matriz en orden ascendente.
Comenzar el 1er ciclo.
array figura iniciar a continuación.

 

 Paso 1: En primer lugar, la comparación 2, y 4. Como se puede ver su orden es incorrecto.

 

 Paso 2: intercambiar sus posiciones.

 

 Paso 3: Comparación de los 4 y 7.

 

 Para su derecho, por lo que no hacen lo cambio.

Paso 4: 7 y comparativo 1.

 

 Paso 5: error de secuencia, entonces intercambiados.

 

 Paso 6: 7 y comparativo 3.

 

 Paso 7: error de secuencia, entonces intercambiados.

 

 

Como lo ha sido el gran elemento de cambio hacia la derecha, por lo que ahora la derecha 7 está en su posición correcta. El discontinua con la red.
Esta es exactamente la razón de este algoritmo llamado ordenamiento de burbuja: después de cada ciclo, no el tipo de valor que será la mayor "riesgo" a la posición correcta.
El hecho de que de ese ciclo más de una vez para hacer un intercambio, así que hay que continuar el ciclo.

Paso 8: A partir de un 2 y 4.

 

 

Ellos se han alineado en secuencia, por lo que para el siguiente paso.
Paso 9: Comparación de 4 y 1.

 

 Paso 10: son en el orden equivocado, y la conmutación.

 

 Paso 11: 4 y comparativo 3.

 

 

 Paso 12: el orden equivocado, el intercambio.

 

 

Debido a 7 ha sido en la última reencarnación en fila, por lo que no hay necesidad de comparar 4 y 7. Además, cuatro se trasladó a la posición correcta, al final de este ciclo. Debido a este ciclo han hecho más de una bolsa, por lo que tiene para continuar el ciclo.

Tercera reencarnación de let.
Paso 13: Comparación 1 y 2.

 

 Paso 14: el orden equivocado, el intercambio.

 

 Paso 15: Comparación de 2 y 3.

 

 

El orden correcto, sin un intercambio.
Luego 3 también "riesgo" a su posición correcta a. Debido a este ciclo más de una vez para hacer un intercambio, que continuará.
Así comenzó el cuarto ciclo.
Paso 16: Comparación 1 y 2.

 

 

El orden correcto, sin un intercambio. Y los elementos restantes también se ordenan, y al final del ciclo.
El hecho de que no hay intercambio de la reencarnación, podemos ver toda la matriz están ordenadas.

 

 Escrito en Python ordenamiento de burbuja:

 

 unsorted_until_index = len (lista) - 1

unsorted_until_index variable dijo que "los datos antes de la disputa sobre el índice no ordenaron." toda la matriz no es una fila principio sobre el orden, por lo que esta variable se le asigna el último índice de la matriz.

Ordenada = False
También hay una variable ordenados, se utilizan para registrar si la matriz está totalmente solucionado. Por supuesto, el principio que debe ser falsa.

while not sorted:
      sorted = True
接着是一个while 循环,除非数组排好了序,不然它不会停下来。然后,我们先将sorted初步设置为True。当发生任何交换时,我们会将其改为False。如果在一次轮回里没有做过交换,那么sorted 就确定为True,我们知道数组已排好序了。

for i in range(unsorted_until_index):
     if list[i] > list[i+1]:
         sorted = False
         list[i], list[i+1] = list[i+1], list[i]

在while 循环里,还有一个for 循环会迭代未排序元素的索引值。此循环中,我们会比较相邻的元素,如果有顺序错误,就会进行交换,并将sorted 改为False。
unsorted_until_index = unsorted_until_index - 1
到了这一行,就意味着一次轮回结束了,同时该次轮回中冒泡到右侧的值处于正确位置。因为unsorted_until_index 所指的位置已放上了正确的元素,所以减1,以便下一次轮回能略过该位置。
一次while 循环就是一次轮回,循环会持续直至sorted 确定为True。

 

 

 

Supongo que te gusta

Origin www.cnblogs.com/hlaotong/p/12634863.html
Recomendado
Clasificación