- 1、本文档共51页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言编程是一项技艺,需要多年的历练才能达到较为完善的境界! 摘自《Expert C Programming》 第六章 数组 复习(数值型数组) 如何定义数组? 数组如何初始化? 数组元素如何引用? 循环语句 循环三要素+循环不变关系 数组元素做函数参数传递的是什么? 作业提示 7.写一个函数,它判断一个整数(或浮点数)是否在一个数组中出现。如果出现,给出第一次出现的位置下标;没出现时给出-1。 15.1 请写一个程序,它输入一个学生成绩文件,输出按照每10分一个成绩段的学生人数。 主要内容 数组的概念、定义和使用 数组程序实例 数组作为函数参数 字符数组和字符串 两维和多维数组 编程实例 一维数组上的重要操作 排序 查找 插入 删除 元素交换 将计算机学院08级学生按平均分高低排序 将08的奥运会各参赛国按英文字典序排序 搜索引擎网页排序(PageRank)->learning to rank …… 排序问题无处不在 常用的排序算法 冒泡排序 选择排序 插入排序 快速排序 希尔排序 堆排序 …… 冒泡排序法 输入n个正整数存在数组中,按由小到大的顺序排序(最大的数下沉) 用冒泡法对10个数进行排序(N-S图及程序) 问题 输入十个正整数,把这十个正整数按由大到小的顺序排序,如何修改程序?-课后作业 n值如果是可变的? 如果只对部分数据进行排序? 某趟循环未发生交换,后面可不再循环, 如何改进冒泡排序? 将数组a中的前5个数进行排序 冒泡排序算法的复杂度分析 最坏情形下扫描数据总数 n*(n+1)/2 最坏情形下数据交换的次数 n*(n-1)/2 选择排序算法的复杂度分析 最坏情形下扫描数据总数 n*(n+1)/2 最坏情形下数据交换的次数 n-1次 插入排序的复杂度分析 最坏情形下数据移动的次数 n*(n-1)/2 例2 一维数组的应用(查找) 先检索中间的一个数据,如果不是所需的数据,则判断这要找的数在那一边,在所在的一边中再看中间的数是否为所需的数,依次下去。只适用于已排好序的数列。 折半查找程序 #includestdio.h #define N 100 void f(int [ ] , int, int); void main() { int a[N], j, n, x; scanf(“%d”, n); for (j = 0; j n; j++) scanf(“%d”, a[j]); printf(“\n”); printf(“输入要查找的数:\n”); scanf(“%d”, x); f(a, n, x); } 例3 一维数组的应用(插入/删除) 将一个数插入一个有序的数列中,插入后数列仍然有序。a[n],有m个有序数(小-大),nm 例4 一维数组的应用(元素交换)将a数组中从第m个元素起一直到最后的元素平移到数组的开头,把a[0]到a[m-2]中的元素向后顺移。 字符数组预备知识 字符常量与字符串常量有什么区别? 如何定义一个字符变量? 字符数组的赋值 将一个字符串赋值给一个字符数组,只能用在初始化的情况下,不能用在赋值语句中 例如: char str[11]; str = “I am happy”;是错误的. 字符串的输入输出 例3 计算字符数组的有效长度 作业 分别写函数用冒泡和选择两种排序方法实现n(如n=10)个数从大到小排序 根据排好序的N个正整数,用折半查找法完成某个数的查找(要求先调用排序函数再调用查找函数)。 写程序实现例4:将a数组中从第m个元素起一直到最后的元素平移到数组的开头(写函数并调用) P215 5(1), 6, 11(设所有空格分隔的连续字符构成词), 13 若字符数组里存了一些字符后放\0 ,就符合字符串形式,可当作字符串使用(数组里存着字符串): char a[5] = {g, o, o, d}, b[5] = {i, s, a}, c[5] = {o, k, \0}, d[5] = {o, k, \0, x}, x[5] = {i,s,n,o,t}; 注意:字符数组的有效长度指第一个\0前的字符个数+1 初始化方式二:用字符串常量 char a1[20] = Peking University; 未标元素个数时,数组大小确定为串长加1。例: char a3[] = Peking University; 数组a3有18个字符元素。 字符数组变量中保存字符串后,可作字符串用。 例,若多个输出语句都用同样输出格式描述: char outform1[] = ”point: (
文档评论(0)