La idea básica de la clasificación de burbujas

1. La idea básica de la clasificación de burbujas La clasificación de burbujas es un método de clasificación simple en la clasificación de intercambio.

Su idea básica es comparar los valores clave de todos los registros adyacentes, si es de orden inverso (a [j]> a [j + 1]), entonces cámbielos para lograr el orden;

El proceso de procesamiento es:

(1) Divida la secuencia completa de registros que se clasificarán en un área ordenada y un área desordenada. El estado inicial del área ordenada es vacío y el área desordenada incluye todos los registros que se ordenarán.

(2) Compare las palabras clave de los registros adyacentes en el área desordenada de adelante hacia atrás. Si se intercambian en el orden inverso, los registros con valores clave pequeños "flotan" (desplazamiento a la izquierda) y los registros con valores clave grandes Es como una piedra, "caída" hacia abajo (mover a la derecha). Después de cada pasada de clasificación de burbujas, el registro con el valor de clave más grande en el área desordenada ingresa al área ordenada. Para una secuencia de registros compuesta por n registros, después de n-1 veces de clasificación de burbujas como máximo, estos n Los registros se reorganizan en orden clave.

2. El algoritmo de clasificación de burbujas original para la secuencia de registros compuesta por n registros, después de como máximo (n-1) veces de clasificación de burbujas, la secuencia de registros se puede convertir en una secuencia ordenada. La primera pasada ubica el registro n. En este momento, hay Solo hay un registro en el área de secuencia; en la segunda pasada para ubicar el registro n-1, hay dos registros en el área de secuencia en este momento; y así sucesivamente, el marco del algoritmo es: para (i = n; i> 1; i—) {posicionamiento Ith registro;}

下面给出完整的冒泡排序算法:
 
for (i=n;i>1;i--) {
 
		for (j=1;j<=i-1;j++) {
 
				if(a[j].key>a.[j+1].key) {
 
							temp=a[j];
 
          					 a[j]=a[j+1];
 
             				a[j+1]=temp;
       			 }
    		}
 }
附加段python的冒泡排序
def bubble_sort(origin_items, comp=lambda x, y: x > y):
    """高质量冒泡排序(搅拌排序)"""
    items = origin_items[:]
    for i in range(len(items) - 1):
        swapped = False
        for j in range(i, len(items) - 1 - i):
            if comp(items[j], items[j + 1]):
                items[j], items[j + 1] = items[j + 1], items[j]
                swapped = True
        if swapped:
            swapped = False
            for j in range(len(items) - 2 - i, i, -1):
                if comp(items[j - 1], items[j]):
                    items[j], items[j - 1] = items[j - 1], items[j]
                    swapped = True
        if not swapped:
            break
    return items

Mapeo de direcciones: https://blog.csdn.net/ldqchat/article/details/79513191

Supongo que te gusta

Origin blog.csdn.net/zhuyin6553/article/details/91148949
Recomendado
Clasificación