时间复杂度:
算法稳定性:
稳定
步骤:
在排序过程中整个数组 E 分为两个部分,第一部分已排序序列 A(在数组前端开始,初始为数组第一个元素),第二部分是未排序列 B( B=E-A)。
1:选择 B 中最前端的元素,放入 A 中。
2:将新加入的元素 c 与在他前一个元素 d 比较,如果 c < d 交换 c 和 d。一直循环直到 c 之前不再有元素或者 c < d不成立。
3:循环执行 1,2 直到 B 为空。
没有图!
注:本系列算法是用于记录自己学习算法阶段对每个算法的自己理解。
@Override
public int[] sort(int[] source) {
for (int i = 1; i < source.length; i++){
int now = i;
for (int j = i - 1; j >= 0; j--){
if (source[now] < source[j]){
SortUtils.exchange(source, now, j);
now = j;
}
}
}
return source;
}