Este artigo descreve o método de implementação de classificação de coquetéis na classificação do Java Exchange. Compartilhe para sua referência. Os detalhes são os seguintes:
Classificação de coquetéis, isto é, classificação direcional da bolha, classificação de coquetéis, classificação de mexer (também pode ser considerado como uma deformação da classificação de seleção), classificação de ondulações, classificação de um happy hour de um happy hour, é uma deformação de classificação de bolhas. A diferença entre esse algoritmo e classificação de bolhas é que, ao classificar, ele é classificado em duas direções na sequência.
Diferente da classificação de bolhas:
A classificação de coquetéis é equivalente a uma ligeira deformação da classificação de bolhas. A diferença é de baixa a alta e depois alta a baixa, enquanto o tipo de bolha compara apenas cada elemento na sequência de baixa a alta. Ele pode obter um desempenho um pouco melhor do que o tipo de bolha, porque o tipo de bolha é comparado apenas de uma direção (de baixa a alta) e move apenas um item por loop.
Tomando a sequência (2,3,4,5,1) como exemplo, a classificação de coquetéis requer apenas uma visita à sequência para concluir a classificação, mas quatro vezes se estiver usando a classificação de bolhas. No entanto, no estado de uma sequência confusa, a eficiência de classificação de coquetéis e classificação de bolhas é muito ruim.
Pior complexidade do tempo o (n^2)
Complexidade de tempo ideal o (n)
Complexidade média do tempo o (n^2)
A imagem dinâmica da classificação de coquetéis é a seguinte:
Análise de código:
pacote com.baobaotao.test; = Array.Length; J]> Array [J+1]) {Swap (Array, J, J+1); <Array [J-1]) {Swap (Array, J-1, J); estático void cocatailsortflag (int [] matriz) {int length = Array.length; Flag2 = True; = false; Flag2 = FALSO; ser trocado de entrada b * @param c O número a ser trocado de entrada C */ public estático de troca (int [] a, int b, int c) {int temp = 0; b]> a [c]) {temp = a [b]; Void PrintArr (Int [] Array) {for (int c: Array) {System.out.print (C + ""); int [] número = {11,95,45,15,78,84,51,24,12}; cocatailsort (número);Análise de resultados:
11 12 45 15 78 84 51 24 95 11 12 15 24 45 78 51 84 95 11 12 15 24 45 51 78 84 95 11 12 15 24 45 51 78 84 95 **************** * *** 11 12 45 15 78 84 51 24 95 11 12 15 24 45 78 51 84 95 11 12 15 24 45 51 78 84 95
Pode -se observar que o número de vezes que os coquetéis são classificados é muito menor que o dos tipos de bolhas comuns. É preciso apenas 4 vezes, e a versão aprimorada da classificação do coquetel de logotipo leva apenas 3 vezes para concluir a classificação.
Espero que este artigo seja útil para a programação Java de todos.