簡單選擇排序
在要排序的一組數中,選出最小的數與第一個位置的數交換;然後再剩下的數再找最小的與第二個位置的數交換,如此循環到倒數第二個數和最後一個數比較爲止。
排序流程
- 首先從原始數組中選擇最小的1個數據,將其和位於第1個位置的數據交換。
- 接着從剩下的n-1個數據中選擇次小的1個元素,將其和第2個位置的數據交換。
- 然後,這樣不斷重複,直到最後兩個數據完成交換,至此,便完成了對原始數組的從小到大的排序。
例如
示例代碼
public class SimpleChoiceSortDemo {
public static void main(String[] args) {
int[] a = { 2, 7, 8, 3, 10, 62, 92, 0, 5, 4 };
System.out.println("初始序列:" + Arrays.toString(a));
simpleChoiceSort(a);
System.out.println("最後:" + Arrays.toString(a));
}
public static void simpleChoiceSort(int[] a) {
int index;
for (int i = 0; i < a.length; i++) {
index=i;//初始索引
for (int j = i; j < a.length; j++) {
if(a[j]< a[index]){//如果後面的值大於索引值,修改索引值
index=j;
}
}
if(index !=i ){//如果兩個不相等 則,交換兩個位置的值
int temp=a[i];
a[i]=a[index];
a[index]=temp;
}
System.out.println("第" + (i+1) + "次:" + Arrays.toString(a));
}
}
}