《算法分析与设计》课程作业
计算机软件与理论 专业
题一
一、 设计目的
1. 掌握各种排序的基本思想。
2. 掌握各种排序方法的算法实现。
3. 掌握各种排序方法的优劣分析及花费的时间的计算。
4. 掌握各种排序方法所适应的不同场合。
二、 设计内容和要求
利用随机函数产生3000个随机整数,利用选择排序、起泡排序、快速排序、合并排序等排序方法进行排序,并统计每一种排序上机所花费的时间。
题二
一、 设计目的
1.掌握哈希表的定义。
2.掌握哈希函数的构造。
3.掌握哈希表的处理冲突的方法。
二、设计内容和要求
哈希表的设计与实现
问题描述: 设计哈希表实现电话号码查询系统。
基本要求:
1、设每个记录有下列数据项:电话号码、用户名、地址;
2、从键盘输入各记录,分别以电话号码和用户名为关键字建立哈希表;
3、采用再哈希法解决冲突;
4、查找并显示给定电话号码的记录;
5、查找并显示给定用户名的记录。
6、在哈希函数确定的前提下,尝试各种不同类型处理冲突的方法(至少两种),考察平均查找长度的变化。
题三
一、 设计目的
1.学会分析问题的方法
2.掌握如何根据实际问题设计相应的算法
3.掌握算法的具体实现。
二、设计内容和要求
N皇后问题:在一个N×N的国际象棋棋盘中摆N个皇后,使这N个皇后不能互相被对方吃掉。
要求:
(1)依次输出各种成功的放置方法。
(2)画出棋盘的图形形式,并动态的演示试探过程。
(3)程序能方便的移植到其它规格的棋盘上。
例如:在一个4×4的棋盘可以摆放的棋位置{(0,1)(1,3)(2,0)(3,2)},{(0,2)(1,0)(2,3)(3,1)}两种。
附:课程作业报告的书写格式
一、 设计题目(任选其二)
二、 运行环境(软、硬件环境)
三、 算法设计的思想
四、 算法的流程图
五、 算法设计分析
六、 源代码
七、 运行结果分析
八、 收获及体会
徐洪珍 副教授