美文网首页
算法<三>选择性排序

算法<三>选择性排序

作者: 小吖么小一郎 | 来源:发表于2019-07-05 13:56 被阅读0次

    适用于一堆乱糟糟的数据,先挑选出最小的数据,然后依次第二小,第三。。。

    package com.example.demo.SortAlgorithm;
    /*
     *
     * @Author: i_heh
     * @Date: 2019/7/4
     * @Time: 18:10
     * @Description:选择性排序
     *
     */
    import java.util.Arrays;
    public class ChoiceSort {
        public static void main(String[] args) {
            int[] arr={2,3,4,8,7,9,5,1};
            int[] res = sort(arr);
            System.out.println(Arrays.toString(res));
        }
        public static int[] sort(int[] data){
            int k=0;//选择指针
            int tmp=0;//用于交换位置的临时变量
            for (int i = 0; i < data.length - 1; i++) {
                //遍历第一个到倒数第二个元素
                k=i;//假设索引i的数是最小值
                for (int j = i+1; j < data.length; j++) {
                    //遍历第二到最后一个元素
                    if (data[j]<data[k]){
                        //如果索引j更小,说明k不是最小,要改
                        k=j;
                    }
                    //这个循环结束的时候k就是最小值的索引
                }
                //依次找出最小的值所在位置k,与从0开始遍历数组的元素交换
                if (k!=i){
                    tmp=data[k];
                    data[k]=data[i];
                    data[i]=tmp;
                }
            }
            return data;
        }
    }
    

    相关文章

      网友评论

          本文标题:算法<三>选择性排序

          本文链接:https://www.haomeiwen.com/subject/cnashctx.html