博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据结构实践项目——排序
阅读量:7051 次
发布时间:2019-06-28

本文共 1507 字,大约阅读时间需要 5 分钟。

本文是[]课程的实践项目。

本文针对:

1. 排序问题及导学
2. 插入排序之直接插入排序
3. 插入排序之希尔排序
4. 交换排序之冒泡排序
5. 交换排序之快速排序
6. 选择排序之直接选择排序
7. 选择排序之堆排序
8. 归并排序
9. 简单的计数排序
10. 基数排序
11. 各种排序的比较

纸上谈兵:“知原理”检验题目

1.给定序列{57, 40, 38, 11, 13, 34, 48, 75, 6, 19, 9, 7},采用下面的算法,分别描述排序的过程:

(1)直接插入排序; (2)希尔排序; (3)冒泡排序; (4)快速排序; (5)直接选择排序; (6)堆排序; (7)归并排序; (8)简单的计数排序; (9)基数排序
2、关于堆
(1)下列关键码序列中__是堆。
  A. (54,41,20,16,30,6,36,24,12)
  B. (54,41,20,36,12,6,16,24,30)
  C. (54,20,41,36,12,6,16,30,24)
  D. (54,30,20,24,12,16,6,41,36)
(2)已知关键字序列5,8,12,19,28,20,15,22是小根堆,插入关键字3,调整好后得到的小根堆是什么?
3、如果将所有中国人按照生日来排序,则使用(   )算法最快?
4、一个序列中有10000个元素,若只想得到其中前10个最小元素,则最好采用(   )排序方法?
5、在有n个关键字互不相同的记录中,找到关键字由小到大第k大的记录,用(   )排序的思想设计算法更好?

课后上机实践

【项目1 - 验证算法】

  用序列{57, 40, 38, 11, 13, 34, 48, 75, 6, 19, 9, 7}作为测试数据,运行并本周视频中所讲过的算法对应 程序,观察运行结果并深刻领会算法的思路和实现方法:(1)直接插入排序;(2)希尔排序;(3)冒泡排序;(4)快速排序;(5)直接选择排序;(6)堆排序;(7)归并排序;(8)基数排序。
  参考解答:

【项目2 - 大数据集上排序算法性能的体验】

  设计一个函数,产生一个至少5万条记录的数据集合。在同一数据集上,用直接插入排序、冒泡排序、快速排序、直接选择排序、堆排序、归并排序、基数排序等算法进行排序,记录所需要的时间,经过对比,得到对复杂度不同的各种算法在运行时间方面的感性认识。

提示1:这一项目需要整合多种排序算法,可以考虑先建设排序算法库,作为我们这门课算法库的收官之作;

提示2:本项目旨在获得对于复杂度不同算法的感性认识,由于数据分布特点、计算机运行状态等不同,其结果并不能完全代替对算法复杂度的理论分析;
提示3:由于C语言标准提供的时间函数只精确到秒,几种O(nlog2n)级别的算法,在5万条记录的压力下,并不能明显地看出优劣,可以忽略直接插入排序、冒泡排序、直接选择排序这三种相对低效率的算法(以节约时间。若能够忍受他们长时间地运行,请自便),成10倍地加大数据量,然后进行观察。

[]

【项目3 - 归并排序算法的改进】

  采用归并排序、快速排序等高效算法进行排序,当数据元素较少时(如n≤64),经常直接使用直接插入排序算法等高复杂度的算法。这样做,会带来一定的好处,例如归并排序减少分配、回收临时存储区域的频次,快速排序减少递归层次等。
试按上面的思路,重新实现归并排序算法。
[]

【项目4 - 英文单词的基数排序】

  设计一个基数排序的算法,将一组英文单词,按字典顺序排列。假设单词均由小写字母或空格构成,最长的单词有MaxLen个字母。
[]

转载地址:http://yqvol.baihongyu.com/

你可能感兴趣的文章
P20:难度增加的抽签问题
查看>>
jsp、HTML全页面刷新方法
查看>>
网络爬虫:异常处理
查看>>
关于获取客户端Mac地址
查看>>
紫书 例题 10-9 UVa 1636 (概率计算)
查看>>
51nod 01背包
查看>>
outlook anywhere 配置
查看>>
关于android帮助文档打开慢
查看>>
损失函数(loss function) 转
查看>>
MatLab2012b/MatLab2013b 分类器大全(svm,knn,随机森林等)
查看>>
js中apply,call的用法
查看>>
SCU 4444 Travel
查看>>
POJ 3280 Cheapest Palindrome
查看>>
BaLaBaLa
查看>>
Share SDK分享
查看>>
IndexedDB,FileSystem- 前端数据库,文件管理系统
查看>>
因为相同类型的其他实体已具有相同的主键值。在使用 "Attach" 方法或者将实体的状态设置为 "Unchanged" 或 "Modified" 。。。...
查看>>
react优化--pureComponent
查看>>
[HDU] 4135 Co-prime
查看>>
从前端面试过程中总结的一些经验
查看>>