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;
}
}