排序算法的时间规模

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

算法实验一

1、实验要求

(1)排序N个元素,元素是随机生成的长为1-16的字符串,n的取值为:24、26、28、210、212、214、216、218、220。算法包括:直接插入排序、冒泡排序、堆排序、归并排序、快排序。

(2)排序N个元素,元素是随机生成的1-104正整数,n的取值为:24、26、28、210、212、214、216、218、220。算法包括:直接插入排序、快排序、基数排序、计数排序。

2、源代码及说明

源代码请参看done文件夹,说明:全局变量n为排序数目。主函数//后内容为输出函数

3、数据分析

A)平方时间排序:

冒泡排序:

b u b b l e -s t r i n g

scale

插入排序:

i n s e r t -s t r i n g

scale

i n s e r t

scale

三个图结合起来,可以看到曲线拟合相关系数颇高

i n s e r t

scale

放大212前的数据,发现冒泡排序增长比插入排序要快,调用操作数较多。而对字符排序操作数则比对数字排序操作数要多。

i n s e r t

scale

B )线性时间排序

计数排序:

c o u n t i n g

scale

基数排序:

r a d i x

scale

两个图结合:

两种排序的数据都严格按线性增长,可以看出基数排序的操作数较多

r a d i x

scale

C )nlgn 时间排序

q u i c k

D)总览

明对比。i n s e r t

scale

4、心得与总结

本次试验加深我了对各种排序算法的工作原理、实现方式、所用的时间和空间等认识。复习了时间函数、动态分配

贮存以及各种数据结构。其中最大的认识是在编程实现时,要清楚算法中各种参数的上界和下界的特殊含义,否则算法不可能正常工作,或者指针会越界出错(比如出现在partition 中的p 必须跑到r-1,否则不能正常工作),在以后的学习中要注意对这些细节的琢磨。

相关文档
最新文档