问题描述:
通过选择排序,从小到大排序一个数组。
算法实现:
public static void selectSort(int[] arr) { for(int i = 0; i < arr.length - 1; i++) { int min = arr[i]; int minIndex = i; for(int j = i + 1; j < arr.length; j++) { if(arr[j] < min) { min = arr[j]; minIndex = j; } } if(min < arr[i]) { int temp = arr[i]; arr[i] = min; arr[minIndex] = temp; } }}
算法解析:
1.从未排序数组的第一个元素开始,假设当前值为最小值;
2.在假设最小值元素的下一个元素开始遍历,直到数组末尾,看是否有更小的值,如果有则交换;
3.上一个步骤结束后,数组中会增加一个有序的元素,继续未排序数组的设置比较过程(重复步骤1、2);
4.遍历、比较、交换结束,数组有序。
来源:https://www.cnblogs.com/heibingtai/p/12563834.html