一、排序算法的分類
二、直接選擇排序的原理
選擇排序是一種簡單直觀的排序算法,它的工作原理是每一次從待排序的數據元素中選出最小(或最大)的一個元素,存放在序列的起始位置,直到全部待排序的數據元素排完。
三、直接選擇排序的實現
public class SelectSort {
/**
* 選擇排序
* 選擇第一個與其後的所有元素進行比較,將最小值放在第一個位置
* 第一個位置放好之後,再選擇第二個與其後的所有元素進行比較,再將最小值放在第二個位置
* ...
* 以此類推,直到最後一個位置也被放置了元素
*
* @param a int數組
*/
public static void selSort(int a[]){
if(a==null||a.length==0){
return;
}
for (int i = 0; i < a.length; i++) {
int tmp = a[i];//存儲遍歷時最小的值
int flag = i;//存儲最小值的位置
for(int j = i+1;j<a.length;j++){
if(a[j]<tmp){
//找到更小的值,將值和位置存儲起來
tmp = a[j];
flag = j;
}
}
int tmp2 = a[i];//臨時保存a[i]的值,用於交換值得位置
a[i] = tmp;
a[flag] = tmp2;
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] test = {2,3,5,4,9,6,7};
selSort(test);
for(int i=0; i<test.length; i++){
System.out.print(test[i] + " ");
}
}
}
測試結果:
2 3 4 5 6 7 9