1、原理
每一次从无序区间选出最大(或最小)的一个元素,存放在无序区间的最后(或最前),直到全部待排序的数据元素排完
2、实现
(1)手动实现
(2)代码
public static void selectSort(int[] array){
//升序排序
//[0,array.length - bound)是未排序区域,[array.length - bound,array.length)是已排序区域
//以bound位置元素作为擂主,打擂成功就交换位置
for(int bound = 0;bound<array.length-1;bound++){
for(int cur = bound+1;cur<array.length;cur++){
if(array[bound]>array[cur]){
int t = array[bound];
array[bound] = array[cur];
array[cur] = t;
}
}
}
}
(3)运行结果
3、性能分析
(1)时间复杂度:O(n^2)
(2)空间复杂度:O(1)
(3)稳定性:不稳定