选择排序

选择排序:

(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);
    }

输出结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值