一、针对经典归并排序算法问题的改进措施
(1)针对递归层次问题
采用能在小规模集合上有效工作的其它算法,直接对小规模集合处理。
如INSERTIONSORT算法
(2)针对元素频繁移动问题
采用一个称为链接信息数组LINK(1:n)的数据结构,记录归并过程中A中的元素相对于其排序后在分类表中位置坐标的链接关系。
LINK(i)取值于[1,n],是指向A的元素的指针:在分类表中它指向下一个元素在A中的位置坐标。
二、具体实现
m_improved.h
#pragma once
//直接插入排序
void insertSort(int a[], int link[], int left, int right, int &p)
{
int temp;
int i, j;
int start = left, end = left;
for (i = left + 1; i <= right; i++)
{
if (a[i] <= a[start])
{
link[i] = start;
start = i;
}
else if (a[i] > a[end])
{
link[end] = i;
end = i;

最低0.47元/天 解锁文章
1447

被折叠的 条评论
为什么被折叠?



