Méthode de tri des bulles : Les enregistrements avec des mots clés plus petits sont comme des bulles qui flottent les unes après les autres, et les enregistrements avec des mots clés plus grands sont comme des pierres qui coulent, et l'une des plus grandes pierres s'enfonce au fond de chaque voyage.
L'essence de l'algorithme: (la valeur maximale est le point clé, il doit être mis à la fin, donc la boucle est comme ceci) Chaque fois, la comparaison est faite de la première position au bas, la valeur minimale augmente une fois , et le dernier bit avance (c'est-à-dire que le dernier chiffre vient d'être déterminé par la valeur maximale qui ne participe plus à la comparaison, le nombre de comparaisons est réduit de 1)
Complexité: complexité temporelle O (N2), complexité de l'espace O (1)
Code source Java (exécution avec succès, la classe de date est requise)
La copie de code est la suivante:
public statique vide bubblesort (date [] jours) {
int len = days.length;
Date temporaire;
pour (int i = len - 1; i> = 1; i--) {
pour (int j = 0; j <i; j ++) {
if (jours [j] .compare (jours [J + 1])> 0) {
temp = jours [J + 1];
jours [J + 1] = jours [J];
jours [j] = temp;
}
}
}
}
Classe Date {
an, mois, mois, jour;
Date (int y, int m, int d) {
année = y;
mois = m;
jour = d;
}
public int compare (date de date) {
Retour année> Date.
: Mois> Date.mont?
: Jour> Date.Day? 1: Day <Date.Day?
}
public void print () {
System.out.println (année + "" + mois + "" + jour);
}
}
La copie de code est la suivante:
Package TestSortalgorithme;
classe publique Bubblesort {
public static void main (String [] args) {
int array [] = {5, 6, 8, 4, 2, 4, 9, 0};
Bubblesort (tableau);
for (int i = 0; i <array.length; i ++) {
System.out.println (array [i]);
}
}
public static void bubblesort (int array []) {
int temp;
for (int i = array.length - 1; i> 0; i--) {
pour (int j = 0; j <i; j ++) {
if (array [j]> array [j + 1]) {
temp = array [j];
Array [J] = Array [J + 1];
Array [J + 1] = temp;
}
}
}
}
}