选择排序
思路:(数据规模 n)
1.先让一个min=0;开始遍历数组,每遇到更大就将min改成这个数对应的位置
2.遍历完一遍后,将此时的min对应的数与最后一个交换
3.再次从第一个开始遍历,这次不遍历最后一个
4.重复步骤
关键代码
for(int i=1;i<=arr.length;i++){
int min = i;
for(int j=i+1;j<arr.length;j++){
if(arr[j]<arr[min]){
min = j;
}
}
if(min!=i){
int tmp = arr[min];
arr[min] = arr[i];
arr[i]= tmp;
}
}
时间复杂度 :O(n2)
空间复杂度 :O(1)