实现原理:
-
寻找最小元素:在未排序序列中找到最小(大顶)元素。
-
交换位置:将找到的最小元素与未排序序列的第一个元素交换位置。
-
未排序序列减少:从第一个元素开始,到最小元素的下一个元素,这个子序列为已排序序列。
-
重复寻找:对剩余未排序的部分重复上述步骤。
-
结束:当所有元素都被选出并排序后,排序完成。
package 八大排序; import java.util.Arrays; //选择排序 public class SelectSort { public static void main(String[] args) { int[] arr = {1,4,6,3,2,56,3,-12,-33,76,100}; sort(arr); System.out.println(Arrays.toString(arr)); } public static void sort (int[] arr){ for (int i = 0; i < arr.length; 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; } } //最小值和待排序数组的第一个元素进行交换 arr[minIndex] = arr[i]; arr[i] = min; } } }