直观展示
排序思路
从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为0.
稳定性
排序算法是不稳定的排序方法
时间复杂度
(N^2)
算法评价
这是一种简单直观的排序算法,无论什么数据进去都是相同的时间复杂度,数据规模越小越好,唯一的好处就是不占用额外的内存空间。
选择排序示例
[2 4 3 1 6 5] 初始状态
[1][3 4 2 6 5] 第一次选择结束
[1 2][4 3 6 5] 第二次选择结束
[1 2 3][4 6 5] 第三次选择结束
[1 2 3 4][6 5] 第四次选择结束
[1 2 3 4 5][6] 第五次选择结束
选择排序代码示例:
public void select_sort(int[] arr
) {
int min
;
if (nums
== null
|| nums
.length
< 2) {
return;
}
for(int i
= 0; i
< arr
.length
-1; i
++) {
min
= i
;
for (int j
= i
+1; j
< arr
.length
;j
++) {
if(arr
[min
] > arr
[j
]) {
min
= j
;
}
}
if(i
!= min
) {
int t
= arr
[i
];
arr
[i
] = arr
[min
];
arr
[min
] = t
;
}
}
}
不足之处,欢迎大佬批评指正