实验二分治法归并排序

实验二分治法归并排序
实验二分治法归并排序

(班级)

姓名学号日期年月日

2、算法分析:

设待排序记录个数为n ,

该算法的基本语句是归并算法的循环体的比较语句

“if (b[i]<=b[j]) temp[k++]=b[i++];

else temp[k++]=b[j++]; ”,

其执行次数为: ,即执行一趟归并算法的时间复杂度为。

则归并排序算法存在以下推式:

所以,归并排序算法的时间复杂度为。

另外,归并排序算法递归调用次数为。

3、结果如下:

教师签名:

成绩:

n=5

n=8

(班级)

姓名学号日期年月日

由n = 5,6,…,10等数据的运行结果可知,

随着问题规模n的增加,其时间复杂度(比较次数的执行)也增加,

所以,该算法分析的判断正确。

4、与选择排序的对比(时间复杂度)

平均情况最好情况最坏情况选择排序

归并排序

从时间复杂度上看,归并排序的要小于选择排序,

并且实际上,

在问题规模相同而待排序记录顺序的整齐程度有所差异的情况下,

选择排序是不论待排序记录顺序的整齐程度如何,其时间复杂度都是固定的;

归并排序是若待排序记录顺序越整齐,其时间复杂度越小,

教师签名:

n=10

相关主题
相关文档
最新文档