选择排序

来源:互联网 发布:java 手游辅助工具 编辑:程序博客网 时间:2024/06/03 11:02

选择排序

该秋招了,赶紧复习复习一下数据结构和算法吧~~。
选择排序应该是排序里面最好理解的了,加入有
{32,45,55,21,72,98} 这6个数字,每次遍历都找出剩余的数字里最小的与前面的替换,例如第一次遍历从第0个开始也就是32,便利之后发现21是最小的,然后就把21和32交换,即小的放在前面就变成了{21,45,55,32,72,98}。
第二次遍历因为21是最小的了所以就从45开始往后扫描发现32是最小的,所以交换之后顺序就是{21,32,55,45,72,98}。第三遍从55开始扫描………以此类推,最后形成了一个有序的序列。
归纳一下就是,进行n-1次遍历,把最小的放在第0个位置,第二小的放在第一个位置,第三小的放在第二个位置,以此类推……

选择排序图片

代码如下

    public static void selectSort(int[] num){        int minIndex;//记录当前扫描最小的位置        //i代表已经有序的数目        for (int i = 0; i < num.length; i++){            minIndex=i;            //从有序的后一个开始扫描            for (int j = i+1; j < num.length;j++) {                if(num[minIndex]>num[j]){                    minIndex=j;                }            }            //扫描一遍值后,把最小的放到前面            swap(num,minIndex,i);        }        for(int a:num){            System.out.println(a);        }    }    private static void swap(int[] num, int i, int j) {        int temp=num[i];        num[i]=num[j];        num[j]=temp;    }
1 0