算法系列之选择排序算法

排序算法的中心思想就是每次从待排序的数组中获取一个最小值或者最大值,将每次获取的最大值或者最小值放到新的数组中形成一个有序列表。

具体做法是:1 先将数组中的第一位假设成最小值min,拿它与数组中的其他数据作比较,发现更小值则更新min的值为更小值

                 2 依次类推,将产生最终的最小值min

                 3 将min与数组第一位的位置进行交换,使最小值排在第一位

                 4 以此类推,将产生一个新的有序数组

举个例子:

                 假设有数组int[] x=[8,2,3,0,1]

                 第一轮先获取最小值0:

                 1 预先设置第一位为最小值,min = x[0]。用min与下一位进行对比,发现min>x[1],这个时候要将2作为最小值,即min=x[1]=2;

                 2 以此类推,始终保持最小值min与余下的数据进行比较,将产生最终的min

                 3 将最后产生的min与数组的第一个元素互换位置,使最小数在第一轮排序过后排在第一位

代码如下:

public void xuazeList(int[] test){
for(int i = 0;i<test.length;i++){
int min = test[i];
int min_index = i;
for(int j = i;j<test.length;j++){
if(min>test[j]){
min =test[j];
min_index = j;
}
}
if(min_index!=i){
int temp =0;
temp=test[i];
test[i] = test[min_index];
test[min_index] = temp;
}

}

posted @ 2017-04-17 14:15  刚出生就很困  阅读(138)  评论(0编辑  收藏  举报