1.选择排序的原理
选择排序是一种比较简单而且直观的排序算法,它的工作原理是每一次从待排序的的元素中选取出最小或者最大的的元素,直到所有的待排序的元素排完。
2.对选择排序算法的解析
1.初始化一个最小索引 在便利前 默认指向第一个数组下标
在进行对比的时候 不与自身相比,与下一个值对比所以j从i+1开始,如果最小下表指向的那个数值比后面的大,索引指向小的那边,以此直到全部完成,
把最小数组下表和第一个数进行调换,确定最小的数
3 实现选择排序算法
public static int[] selectSort(int arr[]){
int minIndex=0;//表示最小的索引
int temp;//表示交换的数据
for (int i = 0; i <arr.length-1 ; i++) {
//在每次初始时候默认第一个为最小的索引
minIndex=i;
//j从i+1开始,不与自身比较 与下一个值比较
for (int j =i+1; j <arr.length; j++) {
if (arr[minIndex]>arr[j]){
minIndex=j;//获取到最小数的索引
}
}
temp=arr[i];
arr[i]=arr[minIndex];
arr[minIndex]=temp;
}
return arr;
}
public static void main(String[] args) {
System.out.println(Arrays.toString(selectSort(new int[]{66,4,6,8,3})));
//[3, 4, 6, 8, 66]
}
从大到小
public static int[] selectSort(int arr[]){
int minIndex=0;//表示最小的索引
int temp;//表示交换的数据
for (int i = 0; i <arr.length-1 ; i++) {
//在每次初始时候默认第一个为最小的索引
minIndex=i;
//j从i+1开始,不与自身比较 与下一个值比较
for (int j =i+1; j <arr.length; j++) {
if (arr[minIndex]<arr[j]){
minIndex=j;//获取到最小数的索引
}
}
temp=arr[i];
arr[i]=arr[minIndex];
arr[minIndex]=temp;
}
return arr;
}
public static void main(String[] args) {
System.out.println(Arrays.toString(selectSort(new int[]{66,4,6,8,3})));
//[66, 8, 6, 4, 3]
}