简而言之就是,通过循环选择最小的一个,然后缩小选择范围,直至最后一个元素
- 假设第一个元素是最小的,将其与其他元素比较,若发现更小的元素,将其交换,继续比较直到最后一个元素
- 从下一个元素开始,重复步骤1,直到最后一个元素
// java
public static void selectSort(int[] array) {
int length = array.length;
for(int i=0; i<length; i++) {
int minimumIndex = i;
for(int j=i+1; j<length; j++) {
if(array[minimumIndex] > array[j]) {
minimumIndex = j;
}
}
if(minimumIndex != i) {
int temp = array[i];
array[i] = array[minimumIndex];
array[minimumIndex] = temp;
}
}
}
时间复杂度 O(n^2)
空间复杂度O(1)
网友评论