插入排序算法与归并排序算法比较
- 实验目的
通过插入排序算法与归并排序算法效率对比体会算法在求解问题中的重要性。
- 实验内容
- 分别编写函数实现插入排序算法和归并排序算法;
- 利用随机函数产生大量数据存入数组作为待排序列;
- 分别测试待排序列数据量为1000、1万、10万、100万、1000万的情况下两种算法各自的运行时间,通过对比分析研究哪个算法在数据量逐渐增大时效率高;
- 对两种算法进行理论分析哪个算法效率高;
- 与实验数据对照,检查是否实验结果验证了理论分析的结果。
- 算法伪代码
直接插入排序:
for j=2 to A.length
key=A[j]
i=j-1;
while i>0 and A[i]>key
A[i+1]=A[i]
i=i-1
A[i+1]=key
归并排序:
MERGE(A,p,q,r)
n1=q-p+1;
n2=r-q;
for i=0 to n1
L[i]=A[p+i-1]
for j=0 to n2
R[j]=A[q+j]
L[n1]=INF//假设1000是无穷大
R[n2]=INF
i=j=1
for k=p to r
if(L[i]<=R[j])
A[k]=L[i]
i=i+1