Método de classificação de bolhas : os registros com palavras -chave menores são como bolhas flutuando uma após a outra, e os registros com palavras -chave maiores são como pedras afundando, e uma das maiores pedras afundam no fundo de cada viagem.
A essência do algoritmo: (o valor máximo é o ponto -chave, ele deve ser colocado até o final, para que o loop seja assim) sempre que a comparação é feita desde a primeira posição até o fundo, o valor mínimo aumenta uma vez e os últimos avanços (ou seja, o último dígito acaba de ser determinado pelo valor máximo que não participa mais da comparação, o número de comparações é reduzido por 1)
Complexidade: complexidade do tempo o (n2), complexidade espacial o (1)
Java Código -fonte (executado com sucesso, a classe de data é necessária)
A cópia do código é a seguinte:
public static void bubblesort (data [] dias) {
int len = dias.length;
Data de data;
for (int i = len-1; i> = 1; i--) {
for (int j = 0; j <i; j ++) {
if (dias [j] .compare (dias [j + 1])> 0) {
temp = dias [j + 1];
dias [j + 1] = dias [j];
dias [j] = temp;
}
}
}
}
Data da classe {
int ano, mês, dia;
Data (int y, int m, int d) {
ano = y;
mês = m;
dia = d;
}
public int compare (data) {
Ano de retorno> Data.Year?
: mês> DAT.MONTH?
: dia> DATA.DAY?
}
public void print () {
System.out.println (ano + "" + mês + "" + dia);
}
}
A cópia do código é a seguinte:
pacote testsortalgorithm;
classe pública Bubblesort {
public static void main (string [] args) {
int array [] = {5, 6, 8, 4, 2, 4, 9, 0};
Bubblesort (matriz);
for (int i = 0; i <Array.length; i ++) {
System.out.println (Array [i]);
}
}
public static void bubblesort (int dray []) {
int temp;
for (int i = array.length-1; i> 0; i--) {
for (int j = 0; j <i; j ++) {
if (Array [j]> Array [j + 1]) {
temp = matriz [j];
array [j] = array [j + 1];
matriz [j + 1] = temp;
}
}
}
}
}