Pertenece al pedido original.
(1) Ideas:
La clasificación de burbujas es ajustar los elementos más grandes hacia atrás. La comparación es la comparación de dos elementos adyacentes y el intercambio también ocurre entre estos dos elementos. Cada vez que se atraviesa la matriz original, el elemento más grande está al final.
(2) Análisis de complejidad:
(2.1) Complejidad del tiempo:
Mejor caso: se ordena un pedido positivo, solo es necesario comparar n veces. Entonces es O (n). El programa necesita agregar un bit de bandera, si un recorrido está en una secuencia positiva, se romperá.
En el peor de los casos: orden inverso y orden, es necesario comparar (n-1) + (n-2) +… + 1 veces, O ( ).
Situación media: O ( ).
(2.2) Complejidad espacial:
O (1)。
(3) Estabilidad:
La clasificación de burbujas es ajustar los elementos más grandes hacia atrás. La comparación es la comparación de dos elementos adyacentes y el intercambio también ocurre entre estos dos elementos. Por lo tanto, si dos elementos son iguales, creo que no los intercambiará de manera aburrida; si dos elementos iguales no son adyacentes, entonces incluso si los dos elementos son adyacentes entre sí a través del intercambio anterior por pares, esto No hay intercambio en ese momento , por lo que el orden de los mismos elementos no cambia, por lo que la clasificación de burbujas es un algoritmo de clasificación estable.
segmento de código:
void bubble_sort(int arr[],int len)
{
int tmp;
for(int i=0;i<len-1;i++)
{
for(int j=0;j<len-1-i;j++)
{
if(arr[j]>arr[j+1]) //非降序
{
tmp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=tmp;
}
}
}
}