插入排序-直接插入排序
程序员文章站
2022-05-20 21:34:52
...
算法简介
直接插入排序应该是插入排序中最简单的一种,前几篇博文已经写了冒泡排序(交换排序中最简单的一种),简单选择排序(选择排序中最简单的一种),今天我们来看看直接插入排序的思路和写法
直接插入排序时间复杂度 O(n^2),空间复杂度 O(1),一般来说它是稳定的排序
Java 实现
思路
思路很明确,就是我通过两轮循环,最外层循环是用来遍历每一个要插入的数,内层循环是为了确定这个数是要插入到序列什么位置。假设头部是一段有序的序列,我从下标 1 的元素开始,不断与头部已经有序的序列比较,从而插入其中,然后再是下标为 2 的元素再插入……最后是末尾元素插入前面有序的序列,最终达到有序效果
代码实现
// 直接插入排序(从小到大)
public int[] directInsertionSort(int[] arr) {
for (int i = 1; i <= arr.length - 1; i++) {
int temp = arr[i];
for (int j = i - 1; j >= 0; j--)
if (temp < arr[j])
arr[j+1] = arr[j];
a[j+1] = temp;
}
return arr;
}
时间复杂度
时间复杂度 O(n^2)
空间复杂度
空间复杂度 O(1)
算法稳定性
一般来说是稳定的排序算法
上一篇: LeetCode-左叶子之和
推荐阅读
-
Tensorflow 训练自己的数据集将数据直接导入到内存
-
linux直接运行py文件的方法
-
Nginx配置txt、pdf、doc、xls等文件直接下载的方法
-
Excel如何将文本格式转换为可以直接用来计算的数字有哪些方法
-
Excel中把小数变成整数不用公式最直接快速的方法将.*替换为空
-
EditPlus怎么显示文件的绝对路径?EditPlus直接显示打开文件的全路径的设置方法
-
C#如何从byte[]中直接读取Structure实例详解
-
.Net core下直接执行SQL语句并生成DataTable的实现方法
-
支付宝9.0新增炒股功能 余额宝直接买卖股票
-
ASP.NET MVC 项目直接预览PDF文件