重温算法之选择排序

选择排序

 排序就是将一组对象按照某种逻辑顺序重新排列的过程。其中一种最简单的方式就是,第一步找出数组中最小的那个元素。第二步找到最小的元素后与第一个元素进行交换位置。第三步在剩下的元素中找到最小的元素与数组的第二个元素交换。如此往复,直到整个数组排序。这种方法就叫做选择排序,总是不断的选择剩余元素的最小者。
 在这个比较过程中选择排序不管数组元素的初始状态是否有序,其执行时间都是一样,数据在这个过程中移动是最小的。基本最多只需要N此交换就能达到排序的目的。
 算法列子:
    public class Selection{
       public static void sort(Comparable [] a){
       int n = a.length;
       for(int i = 0;i<n;i++){
         for(int j=i+1;j<n;j++){
           if (less(a[j],a[i])){
               exchange(a,i,j);
            }
        }
       }
    }
        public static void exchange(Comparable []a ,int i,int j){
         Comparable t = a[i];a[i]=a[j];a[j]=t;
    }
    public static boolean less(Comparable v,Comparable w){
      return v.compareTo(w)<0;
    }
}

该算法简单实用内外两个循环就可以实现需求。是不是很简单,下面来讲解插入排序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

house.zhang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值