4.简单排序之选择排序


原理:

每轮遍历都假定本次遍历的首个索引对应的值为最小值,如第一轮对应0,第二轮对应1。拿假定索引对应的值和后面索引的值依次做比较,如果后面的值小于假定索引对应的值,那么把后面索引值作为假定索引值,这样就能找到最小值对应的索引,本轮遍历结束后交换最小值所在索引的值和第一个所引处的值。

代码实现

package china.guo.calc.simplesort;

import java.util.Arrays;

//选择排序
public class Select {

    //排序
    public static void sort(Comparable[] array) {
        for (int i =0;i<array.length-1; i++) {
            int index = i;
            for (int j = i+1; j <array.length; j++) {
                if (greater(array[index],array[j])){
                    index = j;
                }
            }
            exchange(array,i,index);
        }

    }

    //比较c1和c2大小
    public static boolean greater(Comparable c1,Comparable c2){
        return c1.compareTo(c2)>0;
    }

    //交换索引i和索引j处的元素位置
    public static void exchange(Comparable[] array,int i,int j){
        Comparable temp;
        temp = array[i];
        array[i]=array[j];
        array[j]=temp;
    }

    public static void main(String[] args) {
        Integer[] array = new Integer[]{4,5,3,6,1,2};
        sort(array);
        System.out.println(Arrays.toString(array));
    }
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 排序原理: 1.每一次遍历的过程中,都假定第一个索引处的元素是最小值,和其他索引处的值依次进行比较,如果当前索引处...
    越努力越幸运阳阅读 305评论 0 1
  • 如需转载, 请咨询作者, 并且注明出处.有任何问题, 可以关注我的微博: coderwhy, 或者添加我的微信: ...
    coderwhy阅读 7,875评论 4 24
  • 排序原理: ①每一次遍历待排序数据时,都假定第一个索引处的值为最小值,然后将它依次和其他索引位置数据进行比较,若假...
    借缕春风绽百花阅读 266评论 0 1
  • 1.基本介绍 选择式排序也属于内部排序法,是从欲排序的数据中,按指定的规则选出某一元素,再依规定交换位置后达到排序...
    smallmartial阅读 996评论 0 0
  • 前言 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选...
    JunL_Dev阅读 276评论 0 0