- 1、本文档共17页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课程设计各种排序算法比较
课 程 设 计
课程:数据结构
题目:排序算法比较
专业班级:
姓名:
学号:
设计时间:
指导教师:
设计题目
排序算法比较
运行环境(软、硬件环境)
操作系统windows7
运行环境vc6.0
算法设计的思想
大架构采用模块化编程的思想,将每个不同的功能分别写成不同的子程序,分别进行封装构成各个小的模块,最后将各个模块组合起来。在每个子程序的编写过程中特事特办面对不同的预想功能采取不同的数据结构不同的算法实现。
总体算法思想为按功能分块,依照预想功能实现顺序拼装。
具体思想请见流程图。
流程图
功能流程图
程序编写流程图
算法流程图
算法设计分析
程序总体采用模块化设计,程序间通过传参和调用进行有机组合。这样的总体布局将将各个功能隔离开来,每个模块负责每个模块的功能,使得程序的布局简单明了。且子程序只有在被调用时才会运行大大节约系统资源减少了运算时间。同时由于功能的隔离使得程序的扩展性大大提高,无论程序将要任何改动时,都会方便很多。
源代码
#includestdio.h
#includetime.h
#includestdlib.h
int a[30000];
int choice;
int choice1;
struct xlx{
int key;
int link;
} aa[30000];
int aaa[300000];
void main1();
/**************************生成随机数函数**********************/
void sjs()
{
int i=0,j,b,h,l;
printf(请输入你所期望的将要生成随机数的取值范围:\n);
printf(最小值(不能为负数):);
scanf(%d,l);
printf(最大值(无上限):);
scanf(%d,h);
srand( (int) time(0));
for(j=0;i30000;j++)
{
b=rand();
if(b=lb=h)
{
a[i]=b;
aa[i].key=b;
aaa[i]=b;
i++;
}
}
for(i=0;i30000;i++)
printf(%d ,a[i]);
}
/*************************直接插入排序函数***********************/
void direct(int a[]){
printf(\n现在使用直接插入排序法进行排序:\n);
int i,j,w;
for(i=0;i30000;i++)
{
for(j=i;j=0;j--)
{
if(a[j]=a[j+1])
{
w=a[j];
a[j]=a[j+1];
a[j+1]=w;
}
}
}
}
/*************************冒泡排序函数*************************/
void bubble_sort(int a[])
{
printf(\n下面使用冒泡排序法进行排序:);
int i,j,w;
for(i=0;i30000;i++)
for(j=0;j30000-i;j++)
if(a[j]a[j+1])
{
w=a[j];
a[j]=a[j+1];
a[j+1]=w;
}
}
/*************************选择排序****************************/
void choices_sort(int a[])
{ printf(\n现在使用选择排序法进行排序:\n);
int i,j,k,t;
for(i=0;i30000;i++)
{
k=i;
for(j=i+1;j30000;j++)
if(a[k]a[j])
k=j;
t=a[i];
a[i]=a[k];
a[k]=t;
}
}
/*************************快速排序****************************/
quick(int first,int end,int L[])
{
int left=first,right=end,key;
key=L[first];
文档评论(0)