- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[工学]第6章V2010
计算机网络讲义 一维数组 有时,我们需要存储一批同类型的数据,如有十只羊,主人要挑选一只最肥的羊。 解决方案:可以定义十个double型的变量sheep1, …,sheep10,然后比较十个值,找出一个最大值。 缺点: 定义了十个变量。要是有100只羊就要定义100个变量 程序只能用顺序结构 如果羊群规模发生变化,程序就得重写 数组 数组是一组同类元素,它有两个特征: 数组元素是有序的 数组元素是同类的 定义数组要定义三个基本内容: 数组名字 数组元素的类型 数组的大小 数组的定义 格式: 类型 数组名[元素个数]; 其中,元素个数必须是常量。如: int intarray[10]; 但 int n=10; int intarray[n]; 是错的 常用的方法是将元素个数定义为一个常量。如: #define NumOfElement 10 int intarray[NumOfElement]; 相当于 int intarray[10]; 初始化 声明数组时可以对数组初始化 float x[5] = { -1.1, 0.2, 33.0, 4.4, 5.05 }; 初始化表的长度短于要被初始化的数组元素数目,那么剩余元素被初始化为0。 带有初始化的数组可以不定义长度 int a[]={1,2,3,4,5}; 则默认数组大小为5 数组元素 数组元素的使用是通过数组名及元素的序号来指定,如intarray[2]。当数组的大小为n时,元素的序号为0 – n-1。 元素的序号称为下标。程序中,下标可为整数、整型变量或结果为整型的任意表达式 数组在内存中 定义数组就是定义了一块连续的空间,空间的大小等于元素数*每个元素所占的空间大小。 数组元素按序存放在这块空间中。 为数组分配空间 如: int intarray[5];占用了20个字节,因为每个整型数占四个字节。如给intarray[3]赋值为3,如果这块空间的起始地址为100,那么在内存中的情况是: 当你引用变量intarray[idx]时,系统计算它的地址100+idx*4,对该地址的内容进行操作。 数组下标超界问题 C语言不检查数组下标的超界。如定义数组 int intarray[10]; 合法的下标范围是0 – 9,但如果你引用intarray[10],系统不会报错。如数组intarray 的起始地址是1000,则引用intarray[10],则系统对1040号内存进行操作。而1040可能是另一个变量的地址 解决方法:由程序员自己控制。在对下标变量进行操作前,先检查下标的合法性。 数组的操作 数组的操作主要是数组元素的操作。 不能直接对数组名进行赋值。如:intarray=30 是错的。事实上,数组名中存放的是该数组的起始地址。 eg. 数组的输入输出 数组应用 从终端输入一串字符,统计字符串中个字母出现的次数。 解决方法: 方法一:用26个整型变量计数26个字母,对输入字符串中的每一字符用switch语句分别计数。 方法二:用一个26个元素的数组,如num[26], 表示计数。num[0]存放a的个数, num[1]存放b的个数…。这样对每一个字符不必用switch,而只需用一个简单的计算: ++num[toupper(ch) - ’A’]; 就可以了。 第6章 批量数据处理—数组 一维数组 排序和查找 二维数组 字符串 排序和查找 顺序查找 二分查找 选择排序法 气泡排序法 顺序查找 被查找的数存放在一个数组中 从数组的第一个元素开始,依次往下比较,直到找到要找的元素为止。 如在一整数数组中查找元素x的存储位置。 排序与查找 顺序查找 二分查找 选择排序法 气泡排序法 二分查找 数组元素已按某一顺序排序,如数字的大小顺序、字母的字母序等。以下讨论中都假设是按升序排序。 过程: 设定查找范围的上下界:lh, rh 找出中间元素的位置:mid = ( lh + rh ) / 2 比较中间元素与欲查找的元素 key。如 key 等于中间元素,则 mid 就是要查找的元素的位置;如 key 中间元素,则从 lh – mid 的这些元素不可能是要查找的元素,修正查找范围为 lh = mid + 1到 rh;如key 中间元素,则从mid - rh的这些元素不可能是要查找的元素,修正查找范围为 lh 到 rh = mid - 1;如 lh rh,则要查找的元素不存在,否则返回第二步。 如在数组 CityTable 中查找元素 San Francisco 的过程如下所示。 二分查找过程 二分查找程序
文档评论(0)