选择排序思想
选择排序的核心思想是找到其序列中的最小值,然后把这个数和第一个数交换,以此类推。
例如:
2 1 4 7 8 3
1 2 4 7 8 3
1 2 3 7 8 4
1 2 3 4 8 7
1 2 3 4 7 8
代码
int[] a= {2,1,4,7,8,3};
for(int i=0;i<a.length;i++){
int temp=a[i];
int k=i;//最小值的索引,之前用j来表示找到最小值得索引,会出现问题,原因是已找到最小值,但j有可能还在变化
int j=i+1;
//在剩余元素中找到其最小值
for(;j<a.length;j++){
if(temp>a[j]){
//找到最小值,记录其位置
k=j;
temp=a[j];
}
}
//交换
a[k]=a[i];
a[i]=temp;
}
算法分析
时间复杂度为n的平方