选择排序
- 算法的思想:
- java模拟
算法的思想:
- 每遍历一次就找一个最小的数
*外层 一共遍历 length-1次 总遍历次数符合等差数列 时间复杂度为O(n^2) - 内部查找 并 返回 数值 和 下标
java模拟
public static void selectSort(int[] arr) {
for(int i =0;i<arr.length-1;i++) {
//由于最后一个比较仍然要进行所以是外层循环n-1次
int minNum = arr[i];
int index = i;
for(int j=i+1;j<arr.length;j++) {
//内存从i后面到最后一个元素持续比较
if(arr[j]<minNum) {
//寻找元素开始替换下标和局部最小值
minNum = arr[j];
index = j;
}
}
//一次外层循环结束开始替换值
if(index!=i) {
//原来下标为index替换为i的值
//i的值变为minNum
arr[index]=arr[i];
arr[i]=minNum;
}
}
for(int i=0;i<arr.length;i++) {
System.out.println(arr[i]);
}
}