02选择排序

84 阅读1分钟

02选择排序

基本思想:选择排序其实和冒泡排序有异曲同工之处,选择排序是在未排区域中找最小值,然后放到已排序区域的末尾,此时的已排序区域为整个数组的前面。
讲解:
//创建一个名为Select_sort的方法,需要传递两个参数:a[](待排序数组)和len(该数组长度)。
public static void Select_sort(int a[],int len){
        //外层循环控制比较的趟数,假如有5个元素,则我们需要排5 - 1 = 4个元素,而剩下的一个元素自然有序
        //因此i的值从0开始,结束值为:len - 1
        for(int i = 0;i < len - 1;i++){
            //定义min变量,假定当前元素为最小元素
            //因为我们每进行一次外循环就会有一个元素加入到已排区域,从而使待插入下标后移1位
            int min = i;
            //内循环控制需要比较的元素的个数,即下标
            //因此j的值从i + 1开始(即当前元素的下一个元素),到len结束
            for(int j = i + 1;j < len;j++){
                //如果在待排区域中发现存在小于我们抽离出来的那个位置j的值
                if(a[j] < a[min]){
                    //则更新min值为此时的j值
                    min = j;
                }
            }
            //内循环结束后,将最小元素a[min]和待插入位置a[i]的值进行交换
            int temp = a[i];
            a[i] = a[min];
            a[min] = temp;
        }
    }