#include"Sort.h"
#include<iostream>
using namespace std;
int main()
{
int moving_times = 0, compare_times = 0;
int r1[12] = { 1,2,3,4,5,6,7,8,9,10,12,30 }; //正序序列
int r2[13] = { 30,12,10,9,8,7,6,5,4,3,2,1 }; //逆序序列
int r3[12] = { 5,3,7,2,9,10,12,4,30,8,1,6 }; //乱序序列
int R[13]; //用于排序的序列
for (int i = 1; i < 13; i++)
R[i] = r1[i - 1]; //R为正序序列
cout << "测试数据为正序时:\n" << endl;
InsertSort(R, 12); //直接插入排序
cout << "直接插入排序的排序结果:" << endl;
for (int i = 1; i < 13; i++)
cout << R[i] << " ";
cout << endl;
cout << endl;
//由于第一组数据是顺序,因此每次排序不用重新初始化R
ShellInsert(R, 12); //希尔排序
cout << "希尔排序的排序结果:" << endl;
for (int i = 1; i < 13; i++)
cout << R[i] << " ";
cout << endl;
cout << endl;
BubbleSort(R, 12); //冒泡排序
cout << "冒泡排序的排序结果:" << endl;
for (int i = 1; i < 13; i++)
cout << R[i] << " ";
cout << endl;
cout << endl;
Qsort(R, 1, 12, &moving_times, &compare_times); //快速排序
cout << "快速排序的比较次数:" << compare_times << endl;
cout << "快速排序的移动次数:" << moving_times << endl;
cout << "快速排序的排序结果:" << endl;
for (int i = 1; i < 13; i++)
cout << R[i] << " ";
cout << endl;
cout << endl;
SelectSort(R, 12); //选择排序
cout << "选择排序的排序结果:" << endl;
for (int i = 1; i < 13; i++)
cout << R[i] << " ";
cout << endl;
cout << endl;
compare_times = 0;
moving_times = 0;
MergeSort(R, R, 12, &compare_times, &moving_times); //归并排序
cout << "归并排序的比较次数:" << compare_times << endl;
cout << "归并排序的移动次数:" << moving_times << endl;
cout << "归并排序的排序结果:" << endl;
for (int i = 1; i < 13; i++)
cout << R[i] << " ";
cout << endl;
cout << endl;
compare_times = 0;
moving_times = 0;
BigHeapSort(R, 12, &compare_times, &moving_times); //大根堆排序
cout << "大根堆的比较次数:" << compare_times << endl;
cout << "大根堆的移动次数:" << moving_times << endl;
cout << "大根堆排序的结果:" << endl;
for (int i = 1; i < 13; i++)
cout << R[i] << " ";
cout << endl;
cout << endl;
compare_times = 0;
moving_times = 0;
SmallHeapSort(R, 12, &compare_times, &moving_times); //小根堆排序
cout << "小根堆的比较次数:" << compare_times << endl;
cout << "小根堆的移动次数:" << moving_times << endl;
cout << "小根堆排序的结果:" << endl;
for (int i = 1; i < 13; i++)
cout << R[i] << " ";
cout << endl;
cout << endl;
//由于小根堆排序输出的是逆序,因此不需要重新初始化R
cout << "测试数据为逆序时:\n" << endl;
InsertSort(R, 12); //直接插入排序
cout << "直接插入排序的排序结果:" << endl;
for (int i = 1; i < 13; i++)
cout << R[i] << " ";
cout << endl;
cout << endl;
for (int i = 1; i < 13; i++)
R[i] = r2[i - 1];
ShellInsert(R, 12); //希尔排序
cout << "希尔排序的排序结果:" << endl;
for (int i = 1; i < 13; i++)
cout << R[i] << " ";
cout << endl;
cout << endl;
for (int i = 1; i < 13; i++)
R[i] = r2[i - 1];
BubbleSort(R, 12); //冒泡排序
cout << "冒泡排序的排序结果:" << endl;
for (int i = 1; i < 13; i++)
cout << R[i] << " ";
cout << endl;
cout << endl;
for (int i = 1; i < 13; i++)
R[i] = r2[i - 1];
compare_times = 0;
moving_times = 0;
Qsort(R, 1, 12, &moving_times, &compare_times); //快速排序
cout << "快速排序的比较次数:" << compare_times << endl;
cout << "快速排序的移动次数:" << moving_times << endl;
cout << "快速排序的排序结果:" << endl;
for (int i = 1; i < 13; i++)
cout << R[i] << " ";
cout << endl;
cout << endl;
for (int i = 1; i < 13; i++)
R[i] = r2[i - 1];
SelectSort(R, 12); //选择排序
cout << "选择排序的排序结果:" << endl;
for (int i = 1; i < 13; i++)
cout << R[i] << " ";
cout << endl;
cout << endl;
for (int i = 1; i < 13; i++)
R[i] = r2[i - 1];
compare_times = 0;
moving_times = 0;
MergeSort(R, R, 12, &compare_times, &moving_times); //归并排序
cout << "归并排序的比较次数:" << compare_times << endl;
cout << "归并排序的移动次数:" << moving_times << endl;
cout << "归并排序的排序结果:" << endl;
for (int i = 1; i < 13; i++)
cout << R[i] << " ";
cout << endl;
cout << endl;
for (int i = 1; i < 13; i++)
R[i] = r2[i - 1];
compare_times = 0;
moving_times = 0;
BigHeapSort(R, 12, &compare_times, &moving_times); //大根堆排序
cout << "大根堆的比较次数:" << compare_times << endl;
cout << "大根堆的移动次数:" << moving_times << endl;
cout << "大根堆排序的结果:" << endl;
for (int i = 1; i < 13; i++)
cout << R[i] << " ";
cout << endl;
cout << endl;
for (int i = 1; i < 13; i++)
R[i] = r2[i - 1];
compare_times = 0;
moving_times = 0;
SmallHeapSort(R, 12, &compare_times, &moving_times); //小根堆排序
cout << "小根堆的比较次数:" << compare_times << endl;
cout << "小根堆的移动次数:" << moving_times << endl;
cout << "小根堆排序的结果:" << endl;
for (int i = 1; i < 13; i++)
cout << R[i] << " ";
cout << endl;
cout << endl;
for (int i = 1; i < 13; i++)
R[i] = r3[i - 1];
cout << "测试数据为乱序时:\n" << endl;
InsertSort(R, 12); //直接插入排序
cout << "直接插入排序的排序结果:" << endl;
for (int i = 1; i < 13; i++)
cout << R[i] << " ";
cout << endl;
cout << endl;
for (int i = 1; i < 13; i++)
R[i] = r3[i - 1];
ShellInsert(R, 12); //希尔排序
cout << "希尔排序的排序结果:" << endl;
for (int i = 1; i < 13; i++)
cout << R[i] << " ";
cout << endl;
cout << endl;
for (int i = 1; i < 13; i++)
R[i] = r3[i - 1];
BubbleSort(R, 12); //冒泡排序
cout << "冒泡排序的排序结果:" << endl;
for (int i = 1; i < 13; i++)
cout << R[i] << " ";
cout << endl;
cout << endl;
for (int i = 1; i < 13; i++)
R[i] = r3[i - 1];
compare_times = 0;
moving_times = 0;
Qsort(R, 1, 12, &moving_times, &compare_times); //快速排序
cout << "快速排序的比较次数:" << compare_times << endl;
cout << "快速排序的移动次数:" << moving_times << endl;
cout << "快速排序的排序结果:" << endl;
for (int i = 1; i < 13; i++)
cout << R[i] << " ";
cout << endl;
cout << endl;
for (int i = 1; i < 13; i++)
R[i] = r3[i - 1];
SelectSort(R, 12); //选择排序
cout << "选择排序的排序结果:" << endl;
for (int i = 1; i < 13; i++)
cout << R[i] << " ";
cout << endl;
cout << endl;
for (int i = 1; i < 13; i++)
R[i] = r3[i - 1];
compare_times = 0;
moving_times = 0;
MergeSort(R, R, 12, &compare_times, &moving_times); //归并排序
cout << "归并排序的比较次数:" << compare_times << endl;
cout << "归并排序的移动次数:" << moving_times << endl;
cout << "归并排序的排序结果:" << endl;
for (int i = 1; i < 13; i++)
cout << R[i] << " ";
cout << endl;
cout << endl;
for (int i = 1; i < 13; i++)
R[i] = r3[i - 1];
compare_times = 0;
moving_times = 0;
BigHeapSort(R, 12, &compare_times, &moving_times); //大根堆排序
cout << "大根堆的比较次数:" << compare_times << endl;
cout << "大根堆的移动次数:" << moving_times << endl;
cout << "大根堆排序的结果:" << endl;
for (int i = 1; i < 13; i++)
cout << R[i] << " ";
cout << endl;
cout << endl;
for (int i = 1; i < 13; i++)
R[i] = r3[i - 1];
compare_times = 0;
moving_times = 0;
SmallHeapSort(R, 12, &compare_times, &moving_times); //小根堆排序
cout << "小根堆的比较次数:" << compare_times << endl;
cout << "小根堆的移动次数:" << moving_times << endl;
cout << "小根堆排序的结果:" << endl;
for (int i = 1; i < 13; i++)
cout << R[i] << " ";
cout << endl;
cout << endl;
system("pause");
return 1;
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
排序.rar (25个子文件)
排序
Sorb
.vs
Sorb
v15
Browse.VC.db 4.52MB
.suo 29KB
ipch
AutoPCH
4a0fe605582a47e5
SORT.ipch 25.06MB
aebc58666a3487ba
TEST.ipch 25.06MB
Sorb
test.cpp 8KB
Sort.h 8KB
Sorb.vcxproj 6KB
Sorb.vcxproj.user 165B
Sorb.vcxproj.filters 1KB
Debug
test.obj 89KB
Sorb.log 81B
vc141.idb 147KB
Sort.tlog
CL.write.1.tlog 420B
CL.read.1.tlog 14KB
CL.command.1.tlog 614B
Sort.lastbuildstate 207B
link.write.1.tlog 398B
link.command.1.tlog 1KB
link.read.1.tlog 4KB
vc141.pdb 348KB
Sorb.sln 1KB
Debug
Sort.ilk 363KB
Sort.pdb 460KB
Sort.exe 63KB
实验三.docx 196KB
共 25 条
- 1
资源评论
北邮_老朱
- 粉丝: 21
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功