Java—排序演算法彙總
1.氣泡排序
思路 : 從第一個數值開始,從左到右依次比較相鄰兩個數的大小,若左邊大於右邊,則換位置,直到最大的數值冒到最右邊。
依次迴圈冒泡最大值到右邊,直到排序完畢。
程式碼 :
/** 氣泡排序 */
private static void maopaoSort(int[] array) {
for(int i=0; i < array.length-1; i++){
for(int j = 0; j < array.length-1-i; j++){
if(array[j] > array[j+1]) {
// 交換位置
changeIndex(array,j,j+1);
}
}
}
}
2. 選擇排序
思路 :每一趟比較出序列中的最小值,並將其放在排號序的序列之後,直到排序完畢。
程式碼 :
/** 選擇排序 */
private static void xuanze(int[] array) {
for(int i = 0; i<array.length-1; i++){
int min = array[i];
int minIndex = i;
for(int j = i+1; j<array.length; j++){
if(min > array[j]) {
min = array[j];
minIndex = j;
}
}
// 交換位置
changeIndex(array, i, minIndex);
}
}