基础排序之选择排序
作者:互联网
选择排序理解:假设给了一个数组arr[]={4,5,6,2,3,8,9,15,2}
首先我们会在数组中所有元素(共9个)中去选择一个最大的数,然后把这个数与天花板上的数 交换位置(也就是2的位置)
然后,剩余的八个元素中在去找到最大的数,放到天花板上(也就是15所在的位置)
后面以此类推
直到天花板的位置下标为0
import java.util.Arrays;
public class 选择排序 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arr = new int[] {5,9,6,5,82,6,12,45};
SelectSort(arr);
System.out.println(Arrays.toString(arr));
}
public static void SelectSort(int[] arr) {
//控制天花板:逐步去找最大的数,第二大的数.......
for(int tianHuaBan = arr.length-1;tianHuaBan>=0;tianHuaBan--) {
//在天花板内找到一个最大的数放到天花板的位置
int maxIndex=0; //天花板内最大数的下标
int max = arr[maxIndex];//天花板内最大数的值
for(int i=0;i<=tianHuaBan;i++) {
//在for循环内逐步找到最大的数的下标和值
if(arr[i]>max) {
maxIndex = i;
max = arr[i];
}
}
//已经找到该天花板中最大的数的下标和值了,让该数和天花板上的数交换
int temp = arr[tianHuaBan];
arr[tianHuaBan] = max;
arr[maxIndex] = temp;
}
}
}
标签:arr,int,tianHuaBan,基础,天花板,maxIndex,选择,排序 来源: https://blog.csdn.net/weixin_54401017/article/details/122691872