数据结构与算法171—选择排序

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_16658263/article/details/85560455

更多内容:www.lifesmile.cn

选择排序和前面讲的插入排序有点类似,也是分为已排区和未排区。

思路:

  1. 初始状态下,已排区是没有任何数据,未排区是所有需要排序的数据。
  2. 在未排区中找到最小的值,放到已排区的末尾(也可以理解为交换位置)。

代码:

public class SelectSort {

    private static int[] bubbleSort(int[] data){
        if(data == null || data.length<=1){
            return data;
        }

        for (int i = 0; i <data.length-1 ; i++) {
            int index = i ;
            for (int j = i+1; j < data.length; j++) {
                if (data[i] > data[j]){
                    index  = j; //记录未排区最小的位置
                }
            }

            if (index != i) {  //进行交换
                int temp = data[index];
                data[index] = data[i];
                data[i] = temp;
            }
        }

        return data;
    }

    public static void main(String[] args) {
        int[] data = {9,8,5,4,2,0};
        int[] sort = bubbleSort(data);
        System.out.println(Arrays.toString(sort));
    }
}

微信公众号:LifeSmile

猜你喜欢

转载自blog.csdn.net/sinat_16658263/article/details/85560455