Kata系列之排序算法的选择排序

版权声明:本文为博主原创文章,未经博主允许不得转载。【huawangxin】 https://blog.csdn.net/huawangxin/article/details/78771876

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++){
if(num[k]>num[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;
    }

猜你喜欢

转载自blog.csdn.net/huawangxin/article/details/78771876