***************************实现过程****************************
第一轮 选出最小的数 和 第一个数交换
第一轮结果
{【1】, 7,9,2,13,51,26,33,8};
第二轮结果
{【1】, 【2】 ,9,7,13,51,26,33,8};
****************每一轮如何选择最小的**************
使用打擂台
int[] intArr = {26,7,9,2,13,51,1,33,8}
min = 0;//假设第一个数最小 26最小
如果后面的数 比最小的还小 说明后面的才是最小的
**************************总共比较次数和复杂度***************
{26,7,9,2,13,51}
总共比较多少轮= 元素个数n - 1
每轮比较多少次= 元素个数n-轮数
第一轮 5次
第二轮 4次
第三轮 3次
第四轮 2次
第五轮 1次
总共比较次数= n*(n-1)/2
时间复杂度 = O(n方)
空间复杂度 = O(1)
public class 选择排序 {
public static void main(String[] args) {
int arr[]={26,7,9,2,13,51,1,33,8};
int temp;
for(int j=0;j<arr.length-1;j++){
int min = j;
for(int i = min+1;i<arr.length;i++){
if(arr[min]>arr[i]){
min = i;
}
}
if(min!=j){
temp = arr[j];
arr[j] = arr[min];
arr[min] = temp;
}
}
for(int c:arr){
System.out.print(c+" ");
}
}
}