选择排序是一种不稳定的排序算法,时间复杂度是O(N^2)的,空间复杂度是O(1)的。
主要思想:
每次遍历选出较大或较小元素的,放到合适的位置,不断遍历,直到全部数据排序完成。
下面是java代码的实现方式:
public class ChoseSort {
public static void main(String[] args) {
int[] arr = new int[]{3, 2, 88, 3, 7, 22, 1, 55};
//数组中一共有8个元素,当7个元素排好序后,第8个元素就自动有序了
for (int i = 0;i<arr.length-1;i++){
//记录每次比较小的元素下标
int min = i;
//第一次排序是从0到尾,第二次是从1到尾
//循环的时候只寻找较小元素的下标,记录下来
for (int j = i+1;j< arr.length;j++){
if (arr[min] > arr[j]){
min = j;
}
}
//循环一遍,把小元素归位交换变成有序位置
if (min != i){
int temp = arr[i];
arr[i] = arr[min];
arr[min] = temp;
}
}
for (int i :
arr) {
System.out.print(i + " ");
}
}
}