数组与字符串1一维数组2二维数组3字符串处理.PPTVIP

数组与字符串1一维数组2二维数组3字符串处理.PPT

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数组与字符串1一维数组2二维数组3字符串处理

1.冒泡法 冒泡法排序的基本思想是:依次逐个比较相邻的的两个数,如不符合顺序要求,就交换这两个数的位置。通过一轮比较,就能排定一个数的位置,对于n个数,进行n-1轮比较即可完成排序。 实现: 要排序的数必须放入数组中 用二重循环控制比较趟数(n-1趟),内循环控制一趟比较的次数(n-i次) 2.选择法 选择法排序的基本思想是:通过比较找到最小数,如不是第1个数,则与第1个数交换,再在余下的数中找到最小数,如不是第2个数,则与第2个数交换位置,再在余下的数中找到最小数,如不是第3个数,则与第3个数交换位置,依此进行,n个数经过n-1轮比较即可完成排序。 3. 插入法 插入法排序基本思想是:开始时第1个数已排好序,首先将第2个数按其与前1个已排好序的数的顺序关系插入到适当位置,然后将第3个数按其与前2个已排好序的数的顺序关系插入到适当位置,接着再将第4个数按其与前3个已排好序的数的顺序关系插入到适当位置,依次进行下去,直到最后一个数也按其与前面所有已排好序的数的顺序关系插入到适当位置。对于n个数,经过n-1轮比较插入即可完成排序。 在未排序的数据中查找指定数据只能使用顺序查找的方法,顺序查找就是对数据依次逐个进行比对,直到找到指定数据或遇到末尾仍未找到指定数据。当然,顺序查找也适用于已排序的数据,但明显不是一种高效的方法。 对已排序的数据可以采用效率较高的二分法查找也称折半查找的方法。这种查找方法采用分而治之的办法,先在已排序的数据中找到中间位置的数据,如果它等于要找的指定数据,就完成查找;如果它小于要找的指定数据,则就在比中间数据大的那一半中继续查找,否则就在比中间数据小的那一半中继续查找。重复这样的查找过程,直到找到指定数据或者没有数据可供查找为止。 4. 二维数组的存储 编译系统为二维数组分配连续的存储区间; 该区间字节数:sizeof (元素类型)×行长×列长 或: sizeof (元素类型)×元素个数 存储顺序:按行存储,即先存放0行各元素,再存 放1行各元素,依次类推。 例:int a[3][4]; 存储结构图示: 2000 2002 2004 2006 2008 2010 2012 2014 2016 2018 2020 2022 a[0][0] a[0][1] a[0][2] a[0][3] a[1][0] a[1][1] a[1][2] a[1][3] a[2][0] a[2][1] a[2][2] a[2][3] ┇ 87 73 91 76 82 89 67 73 93 70 80 82 ┇ 0行 1行 2行 二维数组的指针:存储区的起始地址; a: 2000 表示:数组名—— a 二维数组各元素的指针: 可由数组起始地址及行列下标换算求得。 表示:a[i][j] a[i][j]的指针值:a+i×行存储长+j×元素类型长 如a[1][3]的指针:2000+1×8 + 3×2=2014 或: a[i][j]的指针:a+(i×列长+j)×元素类型长 如a[1][3]的指针:2000+(1×4+3)×2=2014 5. 二维数组的输入、输出 可利用双重循环的两个循环变量,分别控制二 维数组的行、列下标的变化; 例:以上面给出的学生成绩表为例实现数组输入。 1) 按行输入——行下标变化慢、列下标变化快; for(i=0; i=2; i++) for(j=0; j=3; j++) scanf(%d,, a[i][j]); 87,73,91,76↙ (或在一行上输入) 82,89,67,73↙ 93,70,80,82↙ 2) 按列输入——列下标变化慢、行下标变化快; for(j=0; j=3; j++) for(i=0; i=2; i++) scanf(%d, a[i][j]); 87 82 93 73 89 70 … ↙ 例:按逻辑结构输出二维表 for(i=0; i=2; i++) { for(j=0; j=3; j++) /*输出i行*/ printf(%5d, a[i][j]); printf(\n); /*换行* } 若有定义: int a[N][M]; 二维数组按行输入标准模板:

文档评论(0)

ailuojue + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档