3 tipo de bolha

Pertence ao pedido original.

 

(1) Idéias:

         A classificação por bolha serve para ajustar os elementos maiores para trás. Comparação é a comparação de dois elementos adjacentes, e a troca também ocorre entre esses dois elementos. Cada vez que o array original é percorrido, o maior elemento está no final.

 

(2) Análise de complexidade:

(2.1) Complexidade de tempo:

         Melhor caso: a ordem positiva é ordenada, basta comparar n vezes. Portanto, é O (n). O programa precisa adicionar um bit de flag, se uma travessia estiver em uma sequência positiva, ela será interrompida.

         Pior caso: ordem e ordem reversa, precisa comparar (n-1) + (n-2) +… + 1 vezes, O ( n ^ {2}).

         Situação média: O ( n ^ {2}).

(2.2) Complexidade do espaço:

         O(1)。

 

(3) Estabilidade:

         A classificação por bolha serve para ajustar os elementos maiores para trás. Comparação é a comparação de dois elementos adjacentes, e a troca também ocorre entre esses dois elementos. Portanto, se dois elementos são iguais, acho que você não vai trocá-los de forma enfadonha; se dois elementos iguais não forem adjacentes, então, mesmo que os dois elementos sejam adjacentes um ao outro por meio da troca pareada anterior, isso Não há troca no momento , então a ordem dos mesmos elementos não muda, então a classificação por bolha é um algoritmo de classificação estável.

 

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;
			}
		}
	}
}

 

Acho que você gosta

Origin blog.csdn.net/u012906122/article/details/103592892
Recomendado
Clasificación