资源简介
利用随机函数产生N个随机整数(20000以上),对这些数进行多种方法进行排序
代码片段和文件信息
#include
#include
#include//常用函数
#include
#include
#include//格式化输出
using namespace std;//声明了名字空间std有关函数和变量都可以直接调用而不需要在前面加域运算符“::“比如没有这句的话输出语句如下:std::cout<<a<<std::endl
int compare[7]change[7]move[7]; //compare数组是比较次数,change数组是交换次数,move数组是移动次数
class SortableSList
{
public:
SortableSList();
void Reload(); //初始数据函数
void Save_File(); //保存信息
void InsertSort(); //直接插入排序
void SelectSort(); //简单选择排序
void BubbleSort(); //冒泡排序
void QuickSort(); //快速排序
void ShellSort(); //希尔排序
void HeapSort(); //堆排序
void MergeSort(); //两路合并排序
void QuickSort(int leftint right);
void PrintBeforeSort();
void PrintAfterSort();
private:
int Partition(int leftint right);
void InsSort(int h);
void Merge(int leftint midint right);
void Min(int i);
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]=20000+rand();
}
void SortableSList::Reload() //初始数据函数
{
int i;
for(i=0;i l[i]=randarray[i];
}
void SortableSList::Save_File() //保存信息
{
int i;
ofstream ofile(“排序.txt“);//如果文件不存在,则新建一个文件
for(i=0;i ofile< ofile.close();
}
//~~~~~~~~~~~~~~~直接插入排序~~~~~~~~~~~~~~~~~~~
void SortableSList::InsertSort()
{
int ij;
for(i=1;i int x=l[i];
move[0]++;
for(j=i-1;j>=0&&x {
compare[0]++;
l[j+1]=l[j]change[0]++;
move[0]++;
}
compare[0]++;
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;
compare[1]++;
for(int j=i+1;j if(l[j] Swap(l[i]l[s])move[1]=move[1]+3change[1]++;
}
}
//~~~~~~~~~~~~~~~快速排序~~~~~~~~~~~~~~~~~~~~~~~~~
int SortableSList::Partition(int leftint right)
{
int i=leftj=right+1;
do{
do
{i++; compare[3]++;}while(l[i] do
{j--; compare[3]++;}while(l[j]>l[left]);
if(i }whil
- 上一篇:C++MFC教程
- 下一篇:arm板控制指纹模块
相关资源
- C++MFC教程
- 个人资源管理
- Visual_C++面向对象编程教程第三章答案
- Retinex算法,C++,opencv
- c++21天课程.txt
- 操作系统实验-----MFC线程--购票系统演
- 基于C++的lzw的编码的实现
- 车位管理系统
- atl连接点、c++接收器、js接收器
- 用C++编写的DBMS
- 数据结构--队列实现舞伴配对问题 舞
- C++监控注册表源代码
- GE OPC Server
- c++实现的字符串替换功能
- 利用opencv实现的条形码检测与识别C
- C++实现朴素贝叶斯分类器
- 基于VC的网络爬虫程序
- 运动会成绩管理系统实验报告 C++编写
- UKF的C、C++代码实现
- VC++获取系统信息/获取OS/获取MAC/获取
- VC++五子棋程序源码VC6.0控制台下运行
- VC++编写USB接口通信程序
- vc++ tcp 客户端和服务器端
- 参考资料\\C++获取MP3文件信息.doc
- 简单的停车场收费 c++
- JPEG图片EXIF信息提取及缩略图显示VC
- shell.rar,一个用c++实现的具有基本完
- VS2010 C++配色方案 主题
- Qt-C++实现文件浏览器
- c++ MFC实现文件合成器功能,实现多种
评论
共有 条评论