资源简介
利用随机函数产生N个随机整数(20000以上),对这些数进行多种方法进行排序。
要求:
1)至少采用三种方法实现上述问题求解(提示,可采用的方法有插入排序、希尔排序、起泡排序、快速排序、选择排序、堆排序、归并排序)。并把排序后的结果保存在不同的文件中。
2)统计每一种排序方法的性能(以上机运行程序所花费的时间为准进行对比),找出其中两种较快的方法。
代码片段和文件信息
#include
#include
#include//常用函数
#include//头文件里面包含了对系统操作的大部分api函数
#include//应用到系统时间函数时必须使用的头文件
#include//格式化输出
using namespace std;//使用标准命名空间std
class SortableSList
{
public:
SortableSList();
void Reload(); //初始数据函数
void Save_File(); //保存信息
void InsertSort(); //直接插入排序
void SelectSort(); //简单选择排序
void BubbleSort(); //冒泡排序
void QuickSort(); //快速排序
void ShellSort(); //希尔排序
void QuickSort(int leftint right);
void PrintBeforeSort(); //排序前数组输出
void PrintAfterSort(); //排序后数组输出
private:
int Partition(int leftint right);
void InsSort(int h);
int *l;
int n;
int *randarray;
};
SortableSList::SortableSList()
{
cout<<“ | 请你输入要排序的数字个数 n : “;
cin>>n; //输入要生成随机数的个数
cout<<“ | |“< cout<<“ |----------------------------------------------------------------------------|“< cout<<“ | |“< cout<<“ | 请稍等...... |“< l=new int[n];
randarray=new int[n];
for(int i=0;i l[i]=randarray[i]=rand()%30000;
}
void SortableSList::Reload() //初始数据函数
{
int i;
for(i=0;i l[i]=randarray[i];
}
void SortableSList::Save_File() //保存信息
{
int i;
ofstream ofile(“排序.txt“); //文件输出流
for(i=1;i<=n;i++)
ofile< ofile.close();
ifstream infile(“排序.txt“); //输入文件对操作
for(i=1;i<=n;i++)
infile>>l[i];
infile.close();
}
//~~~~~~~~~~~~~~~直接插入排序~~~~~~~~~~~~~~~~~~~
void SortableSList::InsertSort()
{
int ij;
for(i=1;i int x=l[i];
for(j=i-1;j>=0&&x {
l[j+1]=l[j];
}
l[j+1]=x;
}
}
//~~~~~~~~~~~~~~~简单选择排序~~~~~~~~~~~~~~~~~~~~~
void Swap(int&aint&b)
{
int e=a;a=b;b=e;
}
void SortableSList::SelectSort()
{
int s;
for(int i=0;i {
s=i;
for(int j=i+1;j if(l[j] s=j;
}
Swap(l[i]l[s]);
}
}
//~~~~~~~~~~~~~~~~~~~冒泡排序~~~~~~~~~~~~~~~~~~~~
void SortableSList::BubbleSort()
{
int i=n-1k=1jlast;
while(i>0){
last=0;
for(j=0;j {
if(l[j+1] {
Swap(l[j]l[j+1]);
last=j;
}
}
i=last;
}
}
//~~~~~~~~~~~~~~~快速排序~~~~~~~~~~~~~~~~~~~~~~~~~
int SortableSList::Partition(int leftint right)
{
int key;
key=l[left];
while(left w
相关资源
- 二叉排序树C语言版的!.c
- C语言 机房收费管理系统
- 网络安全课程设计之漏洞扫描
- 操作系统课程设计(最佳适应算法的
- c语言课程设计通讯录管理系统设计报
- 马的极小满覆盖源代码C++编写
- C/C++课程设计-学生成绩管理系统
- 数据结构课设 运动会分数统计
- C++课程设计飞机订票系统
- 循环列队数据结构课题舞会配对的问
- 校园导航系统c++数据结构
- 实现简单银行叫号模拟系统(C++版)
- 数据结构课设排序算法的可视化演示
- MFC特强大CListCtrlEx支持插入控件、设置
- 算法与数据结构_C语言版_答案(1-8章
- 数据结构课程设计CC++描述[阮宏一][程
- c语言课程设计图书信息管理系统
- 数据结构课程设计学生成绩管理系统
- 交通咨询系统-C语言
- c++课程设计日期格式处理
- C++数据结构与算法源代码第四版清华
- 课程设计 c++学生教师管理系统
- 数据结构课程设计,飞机订票系统源
- C++ 超市管理系统
- C语言课程设计代码学生成绩管理系统
- C语言课程设计景区管理系统
- 数据结构与算法c语言 严蔚敏 代码实
- 数据结构c语言实现严蔚敏版
- C++数值排序
- 八皇后问题加实验报告
评论
共有 条评论