private static void bubblesort(int[] list) {
int i, j;
//循環次數
for (i = 0; i < list.length; i++) {
//這裏是從後往前循環
for (j = list.length - 2; j >= i; j--) {
//若前者大於後者
if (list[j] > list[j + 1]) {
//交換
int temp = list[j];
list[j] = list[j + 1];
list[j + 1] = temp;
}
}
}
}
優化
private static void bubblesort(int[] list) {
int i, j;
boolean flag = true;
//循環次數
for (i = 0; i < list.length && flag; i++) {
//初始化爲false
flag = false;
//這裏是從後往前循環
for (j = list.length - 2; j >= i; j--) {
//若前者大於後者
if (list[j] > list[j + 1]) {
//交換
int temp = list[j];
list[j] = list[j + 1];
list[j + 1] = temp;
//如果有數據交換,則flag爲true
flag = true;
}
}
}
}
時間複雜度:O(n2)