(示例代碼的最終結果使得數列將按升序存放)
1. 選擇排序
選擇一個位置,在該趟循環中將參與比較的數的極值放到該位置上,最後使得整個數列中的數按某一順序存放。
具體如下:
public static void select( int[] nums ){
int temp = 0;
for( int i=0; i<nums.length-1; i++ ){
for( int j=i+1; j<nums.length; j++ ){
if( nums[i]>nums[j] ){
temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
}
}
}
程序第5行,則爲選擇排序的核心:在該趟循環中,取出參與比較的數的極值並放在 [i] 中。爲達目的,將餘下的所有數與[i]中的值進行比較,並根據條件交換其值。
2. 冒泡排序
在某一趟循環中,將仍處於無序狀態的並且在位置上相鄰的數據兩兩依次進行比較,並按條件交換其值得到極值,並把極值放在一端,最終使得整個數列有序。
具體如下:
public static void bub( int[] nums ){
int temp = 0;
for( int i=0; i<nums.length-1; i++ ){
for( int j=0; j<nums.length-1-i; j++ ){
if( nums[j]>nums[j+1] ){
temp = nums[j];
nums[j] = nums[j+1];
nums[j+1] = temp;
}
}
}
}
程序第5行,爲選擇排序的核心:將處於無序狀態的數兩兩依次進行比較,並根據條件交換其值。
3,插入排序
將處於無序狀態的數依次插入到一個有序的數列當中,最後使得整個數列中的數按某一順序存放。
具體如下:
public static void insert( int[] nums ){
int temp = 0;
for( int i=1; i<nums.length; i++ ){
for( int j=i; j>0; j-- ){
if( nums[j] < nums[j-1] ){
temp = nums[j];
nums[j] = nums[j-1];
nums[j-1]=temp;
}
}
}
}
程序第4行表示,將第i個與 前面已排好序的數進行比較,找到其需要插入到的最終位置,並將其插入進去,再使得後面已處於有序的數列整體右移(但在此通過冒泡排序的方式使得這樣一個數列整體右移)。