实验九 比较两段不同的排序算法并进行改良.doc

上传人:创****公 文档编号:768706 上传时间:2018-10-31 格式:DOC 页数:3 大小:30.50KB
下载 相关 举报
实验九 比较两段不同的排序算法并进行改良.doc_第1页
第1页 / 共3页
实验九 比较两段不同的排序算法并进行改良.doc_第2页
第2页 / 共3页
实验九 比较两段不同的排序算法并进行改良.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

1、实验九 比较两段不同的排序算法并进行改良一、 目的和要求1. 掌握数组名作为函数参数的编程方法2. 学会比较不同算法优劣 二、 实验内容1、程序比较题(下面给出的是 2 种不同的排序算法的程序段,请分别画出它们对应的流程图,并分析他们的优劣。 )题目要求:在键盘上输入 N 个整数, 试编制程序使该数组中的数按照从大到小的次序排列。方法一:冒泡排序 从第一个数开始依次对相邻两数进行比较,如次序对则不做任何操作;如次序不对则使这两个数交换位置。第一遍的(N-1)次比较后,最大的数已放在最后,第二遍只需考虑(N-1)个数,以此 类推直到第(N-1)遍比较后就可以完成排序。源程序如下: #define

2、 N 10 #include“stdio.h“ main() int aN,i,j,temp; printf(“please input %d numbersn“,N); for(i=0;iaj+1) temp=aj; aj=aj+1; aj+1=temp; printf(“the array after sort:n“); for(i=0;iN;i+) printf(“%5d“,ai); 方法二:选择排序 首先找出值最小的数,然后把这个数与第一个数交换,这样值最小的数就放到了第一个位置;然后,在从剩下的数中找值最小的,把它和第二个数互换,使得第二小的数放在第二个位置上。以此类推,直到所有的

3、值从小到大的顺序排列为止。 #include“stdio.h“ #define N 10 main() int aN,i,j,r,temp; printf(“please input %d numbersn“,N); for(i=0;iN;i+) scanf(“%d“, for(i=0;iN-1;i+) r=i; for(j=i+1;jN;j+) if(ajar) r=j; if(r!=i) temp=ar; ar=ai; ai=temp; printf(“the array after sort:n“); for(i=0;iN;i+) printf(“%5d“,ai); printf(“n“); 2、编程对上面两个程序段进行改良,使用函数完成排序,使用单步跟踪, 观察数组名作为函数参数时内存中数据的变化。要求包括主函数和如下子函数:(本题可参考 203 页习题 8.15)(1( 输入无序的十个整数;(2( 用冒泡法从小到大排序;(3( 要求输入一个整数,用折半查找法找出该数,若存在,在主函数中 输出其所处的位置,否则,插入适当位置;分析:input 函数完成 10 个整数的录入。sort 函数完成起泡法排序,search 函数完成输入数的查找。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 课件讲义

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。