第03章-的数组及其应用.ppt

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第03章-的数组及其应用

3.3.3 数组的常用查找方法 顺序查找(线性查找) 从数组首元素或最后一个元素开始,往后或往前顺序比较每一个数组元素值是否等于查找关键字;如果找到相符合的元素值,则查找成功,否则,查找失败。顺序查找适应于被查找集合无序的场合。 例3-11 编程序实现顺序查找算法,在随机生成的20个整数中查找指定值,要求程序能够显示出查找进行比较的次数以及本次查找成功与否。 3.3.3 数组的常用查找方法 折半查找(二分查找) 该算法要求在一个对查找关键字而言有序的序列上进行,其基本思想是:逐步缩小查找目标可能存在的范围,具体描述如下: ①选取表中中间位置的记录作为基准,将表分为两个子表; ②当基准位置的关键字值与查找关键字值相符合时,返回基准记录位置,算法结束; ③当基准位置的关键字值与查找的关键字值不符合时,在处理的两个子表中选取一个子表,重复执行①、②,直到被处理的子表中没有记录为止。 3.3.3 数组的常用查找方法 图3.11是在一有序序列中实现对key=21进行折半查找。 ① low=0,high=22,middle=11 (数组下标从0开始)  ② low=12,high=22,middle=17 (数组下标从12开始)  ③ low=18,high=22,middle=20 (数组下标从18开始) 例3-12a 编程实现折半查找。在有序数组a的23个元素中查找关键字21,并输出查找比较次数以及查找成功与否的信息。 程序设计技术 C语言数据描述和C程序设计初步 结构化程序设计基础和C语言的控制结构 数组及其应用 函数与C程序结构 指针与函数 指针与数组 字符串及其应用 结构体类型和联合体类型 C语言的文件处理及其应用 位运算与枚举类型 数组及其应用 3.1? 一维数组 3.1.1 一维数组的定义和初始化 3.1.2 一维数组元素的引用方法 3.2 二维数组和多维数组 3.2.1 二维数组和多维数组的定义 3.2.2 二维数组和多维数组元素引用方法 3.3 数组的简单应用 3.3.1 数组元素值的随机生成 3.3.2 常用排序方法 3.3.3 常用查找方法 一维数组 数组是有序数据的集合。一维数组是一组按线性排列有序且个数有限的同类型变量构成的数据集合。每个数组有一个名称--数组名,数组中的每个数据元素有一个编号--下标,下标从0开始,是正整数。 一维数组在存储时需要占用连续的内存空间,其每一个数据元素所占用的字节长度与它们的数据类型相关。 3.1.1 一维数组的定义和初始化 一维数组的定义 存储类型 数据类型 数组名[常量表达式]; 存储类型:auto、static、extern 数据类型:数组元素的数据类型(基本,构造,指针) 常量表达式:指定数组的元素个数,也称数组长度。 例如:int s[30]; /*定义了1个整型数组s*/ 把30个学生的成绩放在一维数组s中,数组中每个元素表示一个学生的某科成绩,如s[5]表示序号为5的学生成绩73。因序号从0开始,所以没有S[30]元素。 3.1.1 一维数组的定义和初始化 一维数组的初始化 数据类型 ?数组名[n]={常量列表}; 其中: 常量列表:可是逗号分隔的常量或常量表达式。 n:数组长度,常量列表个数不能超过数组长度。 例如: int a[10]={?1,2,3,4,5,6,7,8,9,10?};/*常量*/ int b[3]={1,3*5,4*3-2}; }; /*常量表达式*/ int d[5]={1,2,3,4,5,6}; × /*超过数组长度*/ 注意: 数组名代表数组存储区的首地址,即第一个数组元素的存储地址。即a等价于a[0]。 3.1.1 一维数组的定义和初始化 数组元素初始化的几种形式 在数组初始化时,既可以对全部数组元素赋初始值,也可只对部分数组元素赋初始值,没有初始化的元素值为0(字符数组为’\0’); char s1[10]={‘a’,’b’,’c’,’d’,’e’}; /* 其余元素为‘\0’ */ 如果数组长度没有指定,以初始化数值个数作为数组的长度,或者说数据的个数是确定的,可以不指定数组的长度。 float a1[]={10,20,30.9,40,50}; /* 数组长度为5 */ 将数组全部元素初始化为0值的简写形式 例如:int a[10]={0}; int a[5]={0*10}; × 不能给数组整体赋值 例如,int?a[5]={1,1,1,1,1} int?a[5]={1}; × 3.1.2 一维数组元素的引用 C语言规定:只能逐个引

文档评论(0)

liwenhua00 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档