冒泡排序是所有排序算法中最基本的,最簡單的,因此也是面試和筆試過程中最被經常問的
// 冒泡排序
public static void bubbleSort(int[] num) {
if (num.length <= 1) {
return;
}
for (int i = 0; i < num.length; i++) {
boolean isChange = false;
for (int j = 0; j < num.length - i - 1; j++) {
if (num[j] > num[j + 1]) {
isChange = true;
int temp = num[j];
num[j] = num[j + 1];
num[j + 1] = temp;
}
}
if (!isChange) {
break;
}
}
}
選擇排序的效率相比冒泡排序要高一些,主要是因爲它減少了數據交換的次數,但是數據比較的次數並沒有減少。
// 選擇排序
public static void selectSort(int[] num) {
if (num.length <= 0) {
return;
}
for (int i = 0; i < num.length; i++) {
int minIndex = i;
for (int j = i + 1; j < num.length; j++) {
if (num[minIndex] > num[j]) {
minIndex = j;
}
}
int temp = num[i];
num[i] = num[minIndex];
num[minIndex] = temp;
}
}