资源简介
利用随机函数产生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语言版源代码
- DSDEMO-C演示(数据结构C语言版 严蔚敏
- 数据结构 图的遍历源代码
- 数据结构实验源代码集
- 实验报告:数据结构长整数四则运算
- 宠物管理系统课程设计(源码+数据库
- 数据结构教程李春葆第五版书中例题
- c语言课程设计:客房登记系统源码
- c++数组快排算法
- 吕鑫vc6c++数据结构视频源码
- 数据结构教程李春葆第五版课后答案
- 李春葆课后习题答案(数据结构教材
- 常见排序算法比较.cpp
- 8位竞赛抢答器的课程设计报告.docx
- 数据结构1800题 题+答案(全)
- 数据结构(C语言版)ppt课件,清华,
- c++常用游戏算法及数据结构设计
- 数据结构超全面复习导图
- VC++MFC课程设计的学生成绩管理系统
- 《Data Structures and Algorithm Analysis in C
- 数据结构C语言版教学笔记严蔚敏
- C++实现21点游戏
- c++课程设计学生管理系统浙工大源码
- 数据结构C语言版期末考试试题(有答
- 多功能计算器实现C++代码以及代码详
- C语言数据结构银行客户排队
评论
共有 条评论