选择排序算法

      选择排序算法

1.原理

                  选择排序和冒泡排序类似,但是选择排序是采用一个变量来接受
                  最小值的下标,因此每一趟比较只需要交换一次数组元素即可。

2.举例

                      数组a[]={21,3,44,22},用选择排序算法升序排序。
                      设置一个变量min来接受最小值下标,min初始值为0,即a[min]=a[1]
                      第一趟:a[1]与a[min]比,3小于21,于是min=1
                                    a[2]与a[min]比,3小于44,min不变
                                    a[3]与a[min]比,3小于22,min不变
                                    将a[min]与a[0]互换,a[]={3,21,44,22}
                                    选择出了最小的数3,放在数组第一位,3不参与接下来比较
                                    因此min往后挪一位,min=1
                      第二趟:a[2]与a[min]比,21小于44,min不变
                                    a[3]与a[min]比,21小于22,min不变
                                    将a[min]与a[1]互换,a[]={3,21,44,22}
                                    选择出了最小的数21放在数组第二位,3和21不参与接下来比较
                                    因此min往后挪一位,min=2
                      第三趟:  a[3]与a[min]比,44大于22,于是min=3
                                   将a[min]与a[2]互换,a[]={3,21,22,44}
                                   排序完毕

3.java代码

package sort;

import java.util.Arrays;

public class SelectSort {
public static void main(String[] args) {
    int a[]={21,3,44,22};
    selectSort(a);
    System.out.println(Arrays.toString(a));
}
//选择排序
public static void selectSort(int[] a){
    int min;
    int temp;
    if(a==null||a.length==0){
        return;
    }
    for(int i=0;i<a.length-1;i++){
        min=i;
        for(int j=i+1;j<a.length;j++){
            if(a[j]<a[min]){
                min=j;
            }
        }
        temp=a[min];
        a[min]=a[i];
        a[i]=temp;
    }
}
}

输出结果:[2, 3, 21, 22, 44]

转载于:https://blog.51cto.com/10972685/2365844

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值