/**
* 选择排序
*/
public class SelectSort{
/**
* 每次找到最小值和当前值比较,交换
*/
public void selectSort(int[] arr){
if(arr==null || arr.length==0){
return ;
}
for(int i = 0; i < arr.length; i++){
int cur = arr[i];
int curIndex = i;
for(int j = i+1; j < arr.length; j++){
//得到最小值和最小值的下标
if(cur > arr[j]){
cur = arr[j];
curIndex = j;
}
}
//将最小值和当前值交换
arr[curIndex] = arr[i];
arr[i] = cur;
}
}
}
平均时间复杂度:O(n2n2)
最好时间复杂度:O(n2n2)
最坏时间复杂度:O(n2n2)
空间复杂度:O(1)
本文详细介绍了一种简单直观的排序算法——选择排序,并提供了完整的Java实现代码。选择排序通过不断寻找未排序部分的最小元素并将其放置到正确的位置来完成整个数组的排序。文章还给出了该算法的时间复杂度和空间复杂度分析。
332

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



