8.2.1 直接插入 8.2.2 折半插入 8.2.3 希尔排序 8.3.1 冒泡排序 8.3.2 快速排序 8.3.3 快排优化 8.4.1 简单选择 8.4.2 堆排序 8.4.3 堆操作 8.5.1 归并排序 8.5.2 迭代归并 8.6.1 LSD基数 8.6.2 LSD vs MSD 8.7.1 雷达图 8.7.2 决策器 8.8.1 外部排序 8.8.2 最佳归并树
点击"播放"或"单步"开始直接插入排序演示
已排序区 待排序区
?
算法说明

直接插入排序(Straight Insertion Sort)的基本思想:每次将一个待排序的记录,按其关键字大小插入到前面已排好序的子序列中的适当位置,直到全部记录插入完成为止。

for (i = 1; i < n; i++) { key = a[i]; j = i - 1; while (j >= 0 && a[j] > key) { a[j+1] = a[j]; j--; } a[j+1] = key; }

时间复杂度 O(n²) 空间复杂度 O(1) 稳定排序