Kata系列之排序演算法的選擇排序
阿新 • • 發佈:2018-12-07
Kata系列之排序演算法的選擇排序
/**
* 簡單選擇排序
* 一個原地(in-place)排序,適用於小檔案。
* 由於選擇操作時基於鍵值的且交換操作只在需要時才執行,
* 所以選擇排序長使用者數值較大和鍵值較小的檔案。
*
* 在未排序序列中找到最小元素,存放到排序序列的起始位置
* 再從剩餘未排序元素中繼續尋找最小元素,然後放到排序序列末尾。
* @param num
* @return
*/
public static int[] selectSort(int[] num){
for(int i=0;i<num.length;i++){
int k=i;
for(int j=i+1;j<num.length;j++){
k=j;
}
}
tempNum=num[i];
num[i]=num[k];
num[k]=tempNum;
}
return num;
}
/**
* 選擇排序【第二版】
* 增加標記判斷最小值是否變化
* @param num
* @return
* @author huawangxin
* 2017年12月11日 下午1:40:45
*/
public static int[] selectSort_2(int[] num){
for(int i=0;i<num.length;i++){
int min=i;
for(int j=i+1;j<num.length;j++){
if(num[min]>num[j]){
min=j;
}
}
if(min!=i){
tempNum=num[i];
num[i]=num[min];
num[min]=tempNum;
}
}
return num;
}