算法设计与分析
实 验 指 导 书
沈洋
南京航空航天大学
- 1 -
本实验指导书编写的目的是使学生消化理论知识,加深对讲
授内容的理解,尤其是一些算法的实现及其应用,培养学生独立
编程和调试程序的能力,使学生对算法的分析与设计有更深刻的
认识。
上机实验一般应包括以下几个步骤:
(1)准备好上机所需的程序。在上机前应先手工编写上机实
验内容的算法伪代码,代码应书写整齐,并经人工检查无误后才
能上机。
(2)上机输入和调试自己所编的程序。一人一组,独立上机
调试,上机时出现的问题,最好独立解决。
(3)上机结束后,须整理出实验报告(以 Word 文档形式提
交)。实验报告应包括:题目、程序清单、运行结果、算法的时
间复杂性分析和对运行情况所作的分析等。
- 2 -
实验 1 C/C++环境及基本算法
一、实验目的与要求
1、 熟悉 C/C++语言的集成开发环境;
2、 通过本实验加深对 SelectionSort 算法的理解
二、实验内容:
掌握 SelectionSort 算法的概念和基本思想,增强上机实现基本算法的能
力。
三、实验题
任意输入一个整数数组,使用 SelectionSort 完成对数组的逆序排序(即按
元素从大到小的次序排序),在排序的过程中记录元素的比较操作次数
和赋值操作次数,最后输出总比较次数、总赋值次数和排序后的结果。
四、实验步骤
1. 理解算法思想和问题要求;
2. 编程实现题目要求;
3. 上机输入和调试自己所编的程序;
4. 验证分析实验结果;
5. 整理出实验报告。
- 3 -
实验 2 C/C++环境及基本算法
一、实验目的与要求
1、熟悉 C/C++语言的集成开发环境;
2、通过本实验加深对 BinarySearch 和 InsertSort 算法的理解
二、实验内容:
掌握 BinarySearch 和 InsertSort 算法的概念和基本思想,增强上机实现基
本算法的能力。
三、实验题
任意输入一个整数数组,使用 InsertSort 完成对数组的逆序排序(即按元
素从大到小的次序排序),但在将无序区中的元素插入到有序区时采用
BinarySearch 而不是 LinearSearch,最后输出结果。
四、实验步骤
1. 理解算法思想和问题要求;
2. 编程实现题目要求;
3. 上机输入和调试自己所编的程序;
4. 验证分析实验结果;
5. 整理出实验报告。
- 4 -
实验 3 递归算法
一、实验目的与要求
1、熟悉 C/C++语言的集成开发环境;
2、通过本实验加深对递归过程的理解
二、实验内容:
掌握递归算法的概念和基本思想,分析并掌握“整数划分”问题的递归算
法。
三、实验题
任意输入一个整数,输出结果能够用递归方法实现整数的划分。
四、实验步骤
1. 理解算法思想和问题要求;
2. 编程实现题目要求;
3. 上机输入和调试自己所编的程序;
4. 验证分析实验结果;
5. 整理出实验报告。
- 5 -