算法<三>选择性排序

2019-07-05  本文已影响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;
    }
}
上一篇下一篇

猜你喜欢

热点阅读