Метод сортировки пузырьков : записи с меньшими ключевыми словами похожи на пузырьки, плавающие один за другим, а записи с большими ключевыми словами похожи на тонущие камни, а один из самых больших камней опускается до дна в каждой поездке.
Суть алгоритма: (максимальное значение является ключевым моментом, оно должно быть помещено до конца, поэтому цикл такой, как это) каждый раз, сравнение проводится с первой позиции до дна, минимальное значение увеличивается один раз и последнее достижение битов (то есть последняя цифра была только что определено максимальным значением, больше не участвует в сравнении, количество сравнений уменьшается на 1).
Сложность: сложности времени o (n2), сложность пространства O (1)
Исходный код Java (успешно запускается, требуется класс даты)
Кода -копия выглядит следующим образом:
Public Static Bubblesort (дата [] дни) {
int len = days.length;
Дата температура;
для (int i = len-1; i> = 1; i--) {
for (int j = 0; j <i; j ++) {
if (days [j] .compare (days [j + 1])> 0) {
темп = дни [j + 1];
Дни [j + 1] = дни [j];
Дни [j] = темп;
}
}
}
}
Дата класса {
int Год, месяц, день;
Дата (int y, int m, int d) {
Год = у;
месяц = м;
день = D;
}
public int compare (дата дата) {
Возврат Год> Дата
: Месяц> Дата
: day> Date.day?
}
public void print () {
System.out.println (год + "" + месяц + "" + день);
}
}
Кода -копия выглядит следующим образом:
Пакет TestSortalGorithm;
Публичный класс Bubblesort {
public static void main (string [] args) {
int array [] = {5, 6, 8, 4, 2, 4, 9, 0};
Bubblesort (массив);
для (int i = 0; i <array.length; i ++) {
System.out.println (Array [i]);
}
}
public static void bubblesort (int array []) {
int temp;
для (int i = array.length-1; i> 0; i--) {
for (int j = 0; j <i; j ++) {
if (array [j]> array [j + 1]) {
temp = array [j];
массив [j] = массив [j + 1];
массив [j + 1] = temp;
}
}
}
}
}