本演示程序用C++6.0编写,完成各种排序的实现,对输入的一组数字实现不同的排序方法,对其由小到大顺序输出。
(1)分别对直接插入排序、希尔排序、冒泡排序、快速排序、选择排序、堆排序算法进行编写。
(2)、对存储的函数即输入的数字进行遍历。
(3)、初始化函数对输入的数字进行保存。
(4)、主函数实现使用者操作界面的编写,对输入、选择、保存、输出的各种实现。这当中还包括了各个函数的调用的实现。
(5)、程序所能达到的功能:完成对输入的数字的生成,并通过对各排序的选择实现数字从小到大的输出。
(1)、设计一个菜单,格式如下:
1、直接插入排序
2、希尔排序
3、冒泡排序
4、快速排序
5、选择排序
6、堆排序
7、退出
(2)、选择不同的菜单但进行相应的排序,并给出排序的关键字序列。
本程序包含了9个函数,它们分别是:
(1)、直接插入排序的算法函数InsertSort()。
…… …… 余下全文
计算机学院实验报告专用纸
实验室:网络实验室 机号:网38 实验日期:20##年6月25日
计算机学院实验报告附页
计算机学院实验报告附页
计算机学院实验报告附页
计算机学院实验报告附页
计算机学院实验报告附页
计算机学院实验报告附页
计算机学院实验报告附页
…… …… 余下全文
实验课程:算法分析与设计
实验名称:几种排序算法的平均性能比较 (验证型实验)
实验目标:
(1) 几种排序算法在平均情况下哪一个更快。
(2) 加深对时间复杂度概念的理解。
实验任务:
(1)实现几种排序算法(selectionsort, insertionsort,bottomupsort,quicksort, 堆排序)。对于快速分类,SPLIT中的划分元素采用三者A(low),A(high),A((low+high)/2)中其值居中者。
(2)随机产生20组数据(比如n=5000i,1≤i≤20)。数据均属于范围(0,105)内的整数。对于同一组数据,运行以上几种排序算法,并记录各自的运行时间(以毫秒为单位)。
(3)根据实验数据及其结果来比较这几种分类算法的平均时间和比较次数,并得出结论。 实验设备及环境:
PC;C/C++等编程语言。
实验主要步骤:
(1) 明确实验目标和具体任务;
(2) 理解实验所涉及的几个分类算法;
(3) 编写程序实现上述分类算法;
(4) 设计实验数据并运行程序、记录运行的结果;
(5) 根据实验数据及其结果得出结论;
…… …… 余下全文
【一】需求分析
课程题目是排序算法的实现,课程设计一共要设计八种排序算法。这八种算法共包括:堆排序,归并排序,希尔排序,冒泡排序,快速排序,基数排序,折半插入排序,直接插入排序。
为了运行时的方便,将八种排序方法进行编号,其中1为堆排序,2为归并排序,3为希尔排序,4为冒泡排序,5为快速排序,6为基数排序,7为折半插入排序8为直接插入排序。
【二】概要设计
1.堆排序
⑴算法思想:堆排序只需要一个记录大小的辅助空间,每个待排序的记录仅占有一个存储空间。将序列所存储的元素A[N]看做是一棵完全二叉树的存储结构,则堆实质上是满足如下性质的完全二叉树:树中任一非叶结点的元素均不大于(或不小于)其左右孩子(若存在)结点的元素。算法的平均时间复杂度为O(NlogN)。
⑵程序实现及核心代码的注释:
for(j=2*i+1; j<=m; j=j*2+1)
…… …… 余下全文
《数据结构》课程设计报告
…… …… 余下全文
实验四:查找与排序
【实验目的】
1. 掌握顺序查找算法的实现。
2. 掌握折半查找算法的实现。
【实验内容】
1. 编写顺序查找程序,对以下数据查找37所在的位置。
5,13,19,21,37,56,64,75,80,88,92
2. 编写折半查找程序,对以下数据查找37所在的位置。
5,13,19,21,37,56,64,75,80,88,92
【实验步骤】
1.打开VC++。
2.建立工程:点File->New,选Project标签,在列表中选Win32 Console Application,再在右边的框里为工程起好名字,选好路径,点OK->finish。至此工程建立完毕。
3.创建源文件或头文件:点File->New,选File标签,在列表里选C++ Source File。给文件起好名字,选好路径,点OK。至此一个源文件就被添加到了你刚创建的工程之中。
4.写好代码
5.编译->链接->调试
#include "stdio.h"
#include "malloc.h"
#define OVERFLOW -1
…… …… 余下全文