资源简介
六种内部排序算法比较:直接插入排序、希尔排序、冒泡排序、快速排序、选择排序、堆排序。包含实验报告和源代码设计。
代码片段和文件信息
#include
#include
#include
#define L 8 //排序元素个数
#define FALSE 0
#define TRUE 1
typedef struct
{
int key;
char otherinfo;
}RecType;
typedef RecType Seqlist[L+1];
int num; //定义排序趟数的全局变量
Seqlist R;
//直接插入排序
void Insertsort()
{
int ijkm=0;
printf(“\n\t\t原始数据为(按回车键开始排序):\n\t\t“);
for(k=1;k<=L;k++)
{
printf(“%5d“R[k].key);
}
getchar();
printf(“\n“);
for(i=2;i<=L;i++)
{
if(R[i].key {
R[0]=R[i];
j=i-1;
while(R[0].key {
R[j+1]=R[j];
j--;
}
R[j+1]=R[0];
}
m++;
printf(“\t\t第%d趟排序结果为(按回车键继续):\n\t\t“m);
for(k=1;k<=L;k++)
{
printf(“%5d“R[k].key);
}
getchar();
printf(“\n“);
}
printf(“\n\t\t排序的最终结果是:\n\t\t“);
for(i=1;i<=L;i++)
{
printf(“%5d“R[i].key);
}
printf(“\n“);
}
//希尔排序
void Shellsort()
{
int ijgapxm=0k;
printf(“\n\t\t原始数据为(按回车键开始排序):\n\t\t“);
for(k=1;k<=L;k++)
{
printf(“%5d“R[k].key);
}
getchar();
printf(“\n“);
gap=L/2;
while(gap>0)
{
for(i=gap+1;i<=L;i++)
{
j=i-gap;
while(j>0)
{
if(R[j].key>R[j+gap].key)
{
x=R[j].key;
R[j].key=R[j+gap].key;
R[j+gap].key=x;
j=j-gap;
}
else
{
j=0;
}
}
}
gap=gap/2;
m++;
printf(“\t\t第%d趟排序结果为(按回车键开始排序):\n\t\t“m);
for(k=1;k<=L;k++)
{
printf(“%5d“R[k].key);
}
getchar();
printf(“\n“);
}
printf(“\n\t\t排序的最终结果是:\n\t\t“);
for(i=1;i<=L;i++)
{
printf(“%5d“R[i].key);
}
printf(“\n“);
}
//冒泡排序
void Bubblesort()
{
int ijk;
int exchange;
printf(“\n\t\t原始数据为(按回车键开始排序):\n\t\t“);
for(k=1;k<=L;k++)
{
printf(“%5d“R[k].key);
}
getchar();
printf(“\n“);
for(i=1;i {
exchange=FALSE;
for(j=L;j>=i+1;j--)
{
if(R[j].key {
R[0].key=R[j].key;
R[j].key=R[j-1].key;
R[j-1].key=R[0].key;
exchange=TRUE;
}
}
if(exchange)
{
printf(“\t\t第%d趟排序结果为(按回车键开始排序):\n\t\t“i);
for(k=1;k<=L;k++)
{
printf(“%5d“R[k].key);
}
getchar();
printf(“\n“);
}
}
printf(“\n\t\t排序的最终结果是:\n\t\t“);
for(i=1;i<=L;i++)
{
printf(“%5d“R[i].key);
}
printf(“\n“);
}
int Partition(int iint j) //i和j为形式参数,分别代表low和high
{
RecType pirot=R[i];
while(i {
while(i=pirot.key)
{
j--;
}
if(i {
R[i++]=R[j];
}
while(i {
i++;
}
if(i {
R[j--]=R[i];
}
}
R[i]=pirot;
return i;
}
//递归形式为快速排序
void Quicksort(int lowint high)
{
int pirotposk;
if(low {
pirotpos=Partition(lowhigh);
num++;
printf(“\t\t第%d趟排序结果为(按回车键开始排序):\n\t\t“num);
for(k=1;k<=L;k++)
{
printf(“%5d“R[k].key);
}
getchar();
printf(“\n“);
Quicksort(lowpirotpos-1);
Quicksort(pirotpos+1high);
}
}
//选择排序
void Selectsort()
{
int ijkh;
printf(“\n\t\t原始数据为(按回车键开始排序):\n\t\t“);
for(k=1;k<=L;k++)
{
printf(“%5d“R[k].key);
}
getchar();
printf(“\n“);
for(i=1;i {
h=i;
for(j=i+1;j<=L;j++)
{
if
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
..A.SH. 162 2015-12-27 14:14 排序算法代码实现及比较\~$2014321081073 梁燕 实验五.docx
文件 7889 2016-01-05 10:10 排序算法代码实现及比较\代码\b\b.cpp
文件 4224 2016-01-05 10:37 排序算法代码实现及比较\代码\b\b.dsp
文件 527 2016-01-05 10:09 排序算法代码实现及比较\代码\b\b.dsw
文件 412588 2017-12-04 21:20 排序算法代码实现及比较\代码\b\b.exe
文件 33792 2016-01-05 10:37 排序算法代码实现及比较\代码\b\b.ncb
文件 48640 2016-01-05 10:37 排序算法代码实现及比较\代码\b\b.opt
文件 871 2016-01-05 10:10 排序算法代码实现及比较\代码\b\b.plg
文件 204877 2016-01-05 10:10 排序算法代码实现及比较\代码\b\Debug\b.exe
文件 213088 2016-01-05 10:10 排序算法代码实现及比较\代码\b\Debug\b.ilk
文件 26506 2016-01-05 10:10 排序算法代码实现及比较\代码\b\Debug\b.obj
文件 418816 2016-01-05 10:10 排序算法代码实现及比较\代码\b\Debug\b.pdb
文件 33792 2016-01-05 10:16 排序算法代码实现及比较\代码\b\Debug\vc60.idb
文件 45056 2016-01-05 10:10 排序算法代码实现及比较\代码\b\Debug\vc60.pdb
文件 336896 2017-12-04 21:24 排序算法代码实现及比较\内部排序算法比较.doc
目录 0 2017-12-04 21:21 排序算法代码实现及比较\代码\b\Debug
目录 0 2017-12-04 21:21 排序算法代码实现及比较\代码\b
目录 0 2017-12-04 21:21 排序算法代码实现及比较\代码
目录 0 2017-12-04 21:24 排序算法代码实现及比较
----------- --------- ---------- ----- ----
1787724 19
相关资源
- 职工工资管理系统(数据结构课程设
- 数据结构教程上机实验指导李春葆源
- 数据结构《交通咨询系统》完整代码
- 数据结构课程设计哈夫曼编译码器
- 数据结构文件实现宿舍管理软件设计
- 数据结构课程设计--订票系统
- 数据结构散列表电话号码查询系统课
- 由俩中遍历序列恢复二叉树
- 数据结构综合课设二叉排序树.docx
- 广州大学 数据结构实验报告 实验二
- 商品货架管理程序
- 数据结构试验3-二叉树实验报告含源码
- 程序员代码面试指南:IT名企算法与数
- 池塘夜降彩色雨源码
- 数据结构概念名词解释
- 数据结构汽车牌照管理系统
- 大学数据结构期末考试试题(有答案
- 股票撮合系统
- 链表实验三
- 单链表的操作
- 数据结构 课程设计 排序算法的比较
- 学好算法与数据结构,程序猿的内功
- 广大实验报告
- 数据结构课程设计-图的存储与遍历
- 9散列表源程序+文档+说明+总结
- 7文本编辑数据结构课程设计 源程序
- 1运动会分数统计问题源程序+文档+说
- 数据结构课程设计之车厢调度
- 数据结构课程设计贪吃蛇
- 2019天勤数据结构视频.txt
评论
共有 条评论