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 最佳归并树
点击播放开始迭代归并排序演示
轮次: 0 / 0,当前子序列长度: 1
?
算法说明

迭代归并排序(Bottom-up Merge Sort)自底向上进行:初始将每个元素视为长度为1的有序子序列,然后两两合并成长度为2的有序子序列,再合并成长度为4的子序列,依此类推,直到整个序列有序。

size = 1; while (size < n) { for (left = 0; left < n-1; left += 2*size) { mid = min(left+size-1, n-1); right = min(left+2*size-1, n-1); merge(a, left, mid, right); } size *= 2; }