选择排序的基本原理:将待排序的元素分为已排序(初始为空)和未排序两组,依次将未排序的元素里面的最小元素放入已排序组中。
两种简单的选择排序:
简单选择排序;
堆排序
简单选择排序的基本过程为:
1.在一组元素R[i]到R[n]中选择具有最小关键码的元素;
2.如果它不是这组元素的第一个元素,就将它与这组元素的第一个元素对调;
3.除去具有最小关键字的元素,在剩下的元素中重复第1、2步,直到剩余元素只有一个为止。
代码:
/** 简单选择排序
* @author xiaocui
* @date 2022年08月05日 17:01
*/
public class SelectSort {
private static void selectSort(int[] arr) {
for (int i = 0; i < arr.length-1; i++) {
int mini = i;//初始化
for (int j = i+1; j < arr.length; j++) {
if (arr[j]<arr[mini])
mini=j;获得最小值得下标(即就得到了最小值)
}
if (mini!=i) {//为了防止两个相同的数交换,加个判断
int temp = arr[i];
arr[i] = arr[mini];
arr[mini] = temp;
}
}
}
public static void main(String[] args) {
int[] arr = {49,38,65,97,76,13,27,49};
selectSort(arr);
for (int i:arr) {
System.out.print(i + " ");
}
}
}
结果:
总结: