算法系列-排序算法-直接插入排序(JAVA版)
简介
记录自己的学习的算法
直接插入排序算法工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。
排序算法JAVA实现
代码如下
int[] doSort(int[] array) {
//向前插入,从1开始与前面元素的比较插入
for (int i = 1; i < array.length; i++) {
//当前未排序序列的第一个元素
int temp = array[i];
//未排序序列前一个元素的索引,也是已排序序列的最后元素索引
int preIndex = i - 1;
//从后向前遍历已排序序列,如果 temp 小于遍历的元素,则遍历的元素后移一位
while (preIndex >= 0 && temp < array[preIndex]) {
array[preIndex + 1] = array[preIndex];
preIndex--;
}
//所有大于 temp 的元素后移一位后,temp填充在此位
array[preIndex + 1] = temp;
//打印一下过程与算法无关
System.out.println(printFun(array, i, preIndex + 1));
}
return array;
}
输出结果
未排序 [9, 6, 0, 2, 3]
[6] [9] 0 2 3
[0] 6 [9] 2 3
0 [2] 6 [9] 3
0 2 [3] 6 [9]
已排序 [0, 2, 3, 6, 9]
源码地址
https://github.com/RockeyCui/learn-normal
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 rockeycui@163.com
文章标题:算法系列-排序算法-直接插入排序(JAVA版)
文章字数:293
本文作者:崔石磊(RockeyCui)
发布时间:2018-09-02, 20:00:00
原始链接:https://cuishilei.com/算法系列-排序算法-插入排序-JAVA.html版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。