选择排序

来源:互联网 发布:飓风微信裂变系统源码 编辑:程序博客网 时间:2024/04/28 08:39

选择排序:

(1)第一个数分别跟第二个、第三个……最后一个依次比较,每次把较小的数放到第一个位置,循环比较一次后第一个数为最小数。

(2)再用第二个数分别跟第三个、第四个……最后一个依次比较,每次把较小的数放到第二个位置,循环比较一次后,第二个数为第二小的值。

(3)依次排序,直到最后一个数。

例如有一个数组:{3,1,2,8,5,10,4,12}

int[] a=new int[]{3,1,2,8,5,10,4,12};

第一轮内循环:

a[[0] 依次跟 a[1]、a[2]、a[3]……a[7] 比较,每次把较小值放到 a[0]。

第一轮内循环后,第一个数为最小值 1,即 a[0] = 1 。

第二轮内循环:

a[[1] 依次跟 a[2]、a[3]、a[4]……a[7] 比较,每次把较小值放到 a[1]。

第二轮内循环,第二个数为第二小的值,即 a[1] = 2 。

第三轮内循环:

a[[2] 依次跟 a[3]、a[4]、a[5]……a[7] 比较,每次把较小值放到 a[2]。

轮内循环后,第三个数为第三小的值,即 a[2] = 3 。

最终结果:

代码分析

写一个完成选择排序功能的函数 selectsort() 
public static void  selectsort(int[] a) {    for(int x=0;x<a.length-1;x++) {        for(int y=x+1;y<a.length;y++) {            if(a[x]>a[y]) {                int temp;                temp=a[y];                a[y]=a[x];                a[x]=temp;            }        }    }}
打印数组函数 print()
    public static void print(int[] a) {        System.out.print("[");        for(int x=0;x<a.length;x++) {            System.out.print(a[x]+" ");        }        System.out.println("]");    }

main()函数
    public static void main(String[] args) {        int[] x=new int[]{3,1,2,8,5,10,4,12};        print(x);        selectsort(x);        print(x);    }

输出结果:

原创粉丝点击