实现原理:
1.寻找最小元素:在未排序序列中找到最小(大顶)元素。
2.交换位置:将找到的最小元素与未排序序列的第一个元素交换位置。
3.未排序序列减少:从第一个元素开始,到最小元素的下一个元素,这个子序列为已排序序列。
4.重复寻找:对剩余未排序的部分重复上述步骤。
5.结束:当所有元素都被选出并排序后,排序完成。
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;
}
}
}