冒泡排序算法道理及JAVA完成代碼。本站提示廣大學習愛好者:(冒泡排序算法道理及JAVA完成代碼)文章只能為提供參考,不一定能成為您想要的結果。以下是冒泡排序算法道理及JAVA完成代碼正文
冒泡排序法:症結字較小的記載比如氣泡逐趟上浮,症結字較年夜的記載比如石塊下沉,每趟有一塊最年夜的石塊沉底。
算法實質:(最年夜值是症結點,確定放到最初了,如斯輪回)每次都從第一名向後轉動比擬,使最年夜值沉底,最小值上升一次,最初一名向前推動(即最初一名剛肯定的最年夜值不再加入比擬,比擬次數減1)
龐雜度: 時光龐雜度 O(n2) ,空間龐雜度O(1)
JAVA源代碼(勝利運轉,須要Date類)
public static void bubbleSort(Date[] days) {
int len = days.length;
Date temp;
for (int i = len - 1; i >= 1; i--) {
for (int j = 0; j < i; j++) {
if (days[j].compare(days[j + 1]) > 0) {
temp = days[j + 1];
days[j + 1] = days[j];
days[j] = temp;
}
}
}
}
class Date {
int year, month, day;
Date(int y, int m, int d) {
year = y;
month = m;
day = d;
}
public int compare(Date date) {
return year > date.year ? 1 : year < date.year ? -1
: month > date.month ? 1 : month < date.month ? -1
: day > date.day ? 1 : day < date.day ? -1 : 0;
}
public void print() {
System.out.println(year + " " + month + " " + day);
}
}
package testSortAlgorithm;
public class BubbleSort {
public static void main(String[] args) {
int array[] = { 5, 6, 8, 4, 2, 4, 9, 0 };
bubbleSort(array);
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--) {
for (int j = 0; j < i; j++) {
if (array[j] > array[j + 1]) {
temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
}
}