选择排序
思想:①从未排序序列中选出最小的数字,放入已排序序列的起始位置。
② 再从未排序序列中选出最小的数字,放入已排序序列的末尾。
③ 重复步骤②
图示:演示动画
时间复杂度:O(n²)
代码实现:
public static void selectSort(int[] arr){
for (int i = 0; i < arr.length-1; i++) {
int min = arr[i];
int position = 0;
// 9,7,5,1,3,5,4,7
for (int j = i; j < arr.length; j++) {
if (min > arr[j]){
min = arr[j];
// 拿到未排序序列的最小值的下标
position = j;
}
}
int tmp = arr[position];
arr[position] = arr[i];
arr[i] = tmp;
}
}
1万+



被折叠的 条评论
为什么被折叠?



