欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    数据结构课程设计之综合排序代码及使用方法.docx

    • 资源ID:26857954       资源大小:14.34KB        全文页数:12页
    • 资源格式: DOCX        下载积分:30金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要30金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据结构课程设计之综合排序代码及使用方法.docx

    数据结构课程设计之综合排序代码及使用方法 题目1: 利用随机函数产生N个随机整数(20000以上),对这些数进行多种方法进行排序。 要求: 1)至少采用三种方法实现上述问题求解(提示,可采用的方法有插入排序、希尔排序、起泡排序、快速排序、选择排序、堆排序、归并排序)。并把排序后的结 果保存在不同的文件中。 2)统计每一种排序方法的性能(以上机运行程序所花费的时间为准进行对比),找出其中两种较快的方法。 代码如下: #include /标准输入输出头文件 #include /定义杂项函数及内存分配函数 #include /字符串处理 #include /定义关于时间的函数 #define N 20000 clock_t Start,Now;/时钟 void Wrong()/错误输出 printf("n*按键错误!请重新输入*n"); getchar();/从标准输入获取字符并返回下一个字符 void change(int a)/十个一行输出 int i; system("cls");/清除之前的操作 for(i=0;it) high=mid-1; else low=mid+1; for(j=i-1;j>=low;j-) aj+1=aj; alow=t; /插入排序 void Sort_charu (int a,int p) int i,j,temp; for(i=1;i0&&aj-1>temp;j-)/寻找位置插入 aj=aj-1;/交换 aj=temp; /选择排序 void sort_xz(int a,int p) int i,j,k; for(i=0;ii;j-) if (aj temp=aj; aj=aj-1; aj-1=temp; void creatheap(int a,int i,int n) /创建堆 int j; int t; t=ai;/堆顶元素暂存 j=2*(i+1)-1; while(j=0;i-)/在序列的中间位置找一个数做堆顶creatheap(a,i,n-1); for(i=n-1;i>=1;i-)/n-1次筛选 t=a0; a0=ai; ai=t; creatheap(a,0,i-1); /插入排序时间 double TSort_charu(int a,int p) int i;double time; int bN; for(i=0;i=i;j-) if(aj+1 temp=aj+1; aj+1=aj; aj=temp; void menu() printf(" n"); printf(" *尊敬的用户您好* n"); printf(" n"); printf(" *欢迎使用由XXXXXXXXXXXXX 编辑的综合排序系统!* n"); printf(" printf(" n"); printf(" 现在请您做出以下选择n"); printf(" n"); printf(" n"); printf(" * n"); printf(" n"); printf(" * 1:直接插入排序*n"); printf(" * 2:直接选择排序*n"); printf(" * 3:冒泡排序*n"); printf(" * 4:二分插入排序*n"); printf(" * 5:堆排序*n"); printf(" * 6:时间效率比较*n"); printf(" * 7:显示随机数*n"); printf(" * 0:退出*n"); printf(" n"); printf(" * n"); void main() int i,p,aN; double TIMES5,TIMES15;/时间数组 srand(int)time(NULL); for(i=0;i<N;i+) ai=rand() 000+1; /随机为数组赋值 /循环执行,直到按0退出 while(1) system("cls"); menu(); /显示选择界面 scanf("%d",&p); /等待输入 /输入0退出 if(p=0) printf(" *谢谢!欢迎下次使用*!n"); getchar(); break; /判断输入值,选择相应的操作 switch(p) case 1:TSort_charu(a,p);printf("n请按任意键继续.");getchar();break; case 2:Tsort_xz(a,p);printf("n请按任意键继续.");getchar();break; case 3:Tsort_mp(a,p);printf("n请按任意键继续.");getchar();break; case 4:TSort_efcr(a,p);printf("n请按任意键继续.");getchar();break; case 5:Tsort_d(a,N,p);printf("n请按任意键继续.");getchar();break; case 6:system("cls"); TIMES11=TIMES1=TSort_charu(a,p); TIMES12=TIMES2=Tsort_xz(a,p); TIMES13=TIMES3=Tsort_mp(a,p); TIMES14=TIMES4=TSort_efcr(a,p); TIMES15=TIMES5=Tsort_d(a,N,p); getchar(); BubleSort(TIMES); printf("nn"); printf("排序这组数据两种较快的排序法分别是:n"); if(TIMES1=TIMES11) printf("直接插入排序:%f秒!n",TIMES1); if(TIMES1=TIMES12) printf("直接选择排序:%f秒!n",TIMES1); if(TIMES1=TIMES13) printf("冒泡排序:%f秒!n",TIMES1); if(TIMES1=TIMES14) printf("二分插入排序:%f秒!n",TIMES1); if(TIMES1=TIMES15) printf("堆排序:%f秒!n",TIMES1); if(TIMES1!=TIMES2) if(TIMES2=TIMES11) printf("直接插入排序:%f秒!n",TIMES2); if(TIMES2=TIMES12) printf("直接选择排序%f秒!n",TIMES2); if(TIMES2=TIMES13) printf("冒泡排序%f秒!n",TIMES2); if(TIMES2=TIMES14) printf("二分插入排序:%f秒!n",TIMES1); if(TIMES2=TIMES15) printf("堆排序%f秒!n",TIMES2); printf("n请按任意键继续."); srand(int)time(NULL); for(i=0;i<N;i+) ai=rand() 000+1; getchar();break; case 7:change(a);FILE *fp; fp=fopen("F:随机数.txt","w"); for(i=0;i<N;i+) fprintf(fp,"%d ",ai); fclose(fp);getchar(); printf("n请按任意键继续."); getchar();break; default:Wrong(); getchar();break; 可能出现的错误及处理办法: LINK : error LNK2022 无法解析的外部符号_mainCRTStartup 刚安装Microsoft visual C+ 2022 学习版,运行一段代码,出现了如下图错误: 在网上找了半天类似的错误,有说建项目属性=链接器=系统,应该设置为windows,我设置了也不好使。我建项目是严格按照“Win32控制台应用程序”设置的“空项目”,所执行的.cpp文件也有main()方法,那到底错哪儿了呢?最后,再一次看独行剑侠的“Visual C+ 2022入门教程系列二:安装、配置和首次使用VS2022”,才明白我错哪儿了! 错误原因:我原来学的是C语言,c文件在Visual c+ 6.0中创建的步骤是:文件=新建=工程,然后选择“Win32 Console Application” 工程建好之后,再点击文件=新建=文件,选择C语言的h文件,这样新建的h文件也就自动在建好的工程里面了,而我在Visual C+ 2022也按照原来的步骤操作,结果就出现了上面的错误,归根结底还是像“剑侠”文章里所说的,我建的项目是一个空项目,在编译的时候找不到main()方法,虽然我点击文件=新建=文件=Visual C+里面的C+文件(.cpp),但是建好的cpp文件却不是在项目里面,也就是皇帝的新装,写了很多,也无语法错误,但都是裸露的! 解决办法:在建好的项目点击右键=添加=新建项 填写了我要新建cpp文件的名称,最后编译代码,一切比想象的都顺利! PS:看来去年一时的兴起随便学点知识,这问题帮助了不少人哈,说实话,我现在基本全忘完了!呵呵

    注意事项

    本文(数据结构课程设计之综合排序代码及使用方法.docx)为本站会员(h****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开