欢迎来到天天文库
浏览记录
ID:40841020
大小:598.01 KB
页数:52页
时间:2019-08-08
《c语言中有关字符数组的简介》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1C语言编程是一项技艺,需要多年的历练才能达到较为完善的境界!----摘自《ExpertCProgramming》高级语言程序设计主讲教师:丁丁计算机与信息技术学院dding@bjtu.edu.cn3第六章数组4复习(数值型数组)如何定义数组?数组如何初始化?数组元素如何引用?循环语句循环三要素+循环不变关系数组元素做函数参数传递的是什么?5数组的概念、定义和使用数组程序实例数组作为函数参数字符数组和字符串两维和多维数组编程实例主要内容一维数值型数组的重要应用6一维数组上的重要操作排序查找插入删除元素交换7将计算
2、机学院12级学生按平均分高低排序将08的奥运会各参赛国按英文字典序排序搜索引擎网页排序(PageRank)->learningtorank……排序问题无处不在例1一维数组的应用(排序)8常用的排序算法冒泡排序选择排序插入排序快速排序希尔排序堆排序……9冒泡排序法输入n个正整数存在数组中,按由小到大的顺序排序(最大的数下沉)例3849657613273097第一趟38496513273076第二趟384913273065第三趟3813273049第四趟13273038第五趟132730第六趟49386597761
3、32730初始关键字n=8384976971397972730971376767627301365276530651313494930492738273830381327第七趟a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]10用冒泡法对10个数进行排序(N-S图及程序)变量、数组长度定义for(j=0;j<=N-i-1;j++)scanf(“%d”,&a[i])for(i=0;ia[j+1]10a[j]与a[j+1]交换for(i=1;i<
4、=N-1;i++)printf(“%6d”,a[i])/*冒泡法对10个数由小到大排序*/#include#defineN10voidmain(){inta[N],i,j,t;printf("请输入10个数:");for(i=0;ia[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}printf("
5、n排序后的数据为:");for(i=0;i课后作业n值如果是可变的?如果只对部分数据进行排序?某趟循环未发生交换,后面可不再循环,如何改进冒泡排序?12voidBubbleSort(intn,inta[]){intflag,i,j;for(i=1;i<=n-1;i++){flag=0;for(j=0;j<=n-i-1;j++)if(a[j]>a[j+1]
6、){t=a[i];a[i]=a[i+1];a[i+1]=t;flag=1;}if(!flag)return;}}改进的冒泡排序(函数):设标志flag,如果某趟未发生交换,flag=0,说明排序完成,返回。13将数组a中的前5个数进行排序#includevoidBubbleSort(intn,inta[]);intmain(){inta[10],i,j,t;printf("请输入10个数:");for(i=0;i<10;i++)scanf(“%d”,&a[i]);BubbleSort(5,a
7、);for(i=0;i<10;i++)printf(“%d”,a[i]);return0;}14冒泡排序算法的复杂度分析最坏情形下扫描数据总数n*(n+1)/2最坏情形下数据交换的次数n*(n-1)/215选择法排序:把n个正整数按由小到大的顺序排序。例初始:[49386597761327]kji=11349一趟:13[386597764927]i=22738二趟:1327[6597764938]三趟:132738[97764965]四趟:13273849[769765]五趟:1327384965[9776]六趟
8、:132738496576[97]kkkkjjjjjjjjjj16用选择法对10个数进行排序(N-S图及程序)/*选择法对10个数由小到大排序*/#include#defineN10voidSelectSort(intn,inta[]);voidmain(){inta[N],i;for(i=0;i
此文档下载收益归作者所有