- 1、本文档共38页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
补充-数组应用讲述
补充3数组应用的技巧与方法 附加:计数器、累加器、累乘器 计数器 int count; while(…){ … count ++ } 累加器 int s; for(…) { … a=…; s=s+a; } 关于一维数组的问题 一般一维数组所涉及的主要问题有 排序 插入 删除 查找 分类统计 涉及到一些算法,我们通过例题介绍一部分 具体问题的解题算法的思路要靠自己慢慢去体会 排序算法 插入排序 直接插入排序 折半插入排序 表插入排序 希尔排序 交换排序 冒泡排序 快速排序(不稳定) 选择排序 归并排序 基数排序 插入排序 直接插入排序 交换排序 冒泡排序 选择排序 算法:首先找到数据清单中的最小的数据,然后将这个数据同第一个数据交换位置;接下来找第二小的数据,再将其同第二个数据交换位置,以此类推。 第1次,在数组a的n个数据中选出其小者(只标记其所在位置),若它不在其位置(即其下标不等于1)则与第一个数据进行交换(只需交换一次),经过本次处理后,总可以使得数组a的第1个数据为第1小。 第2次,在数组a的后n-1个数据(即出去已经选择的最小者的各数据)中,经过类似的处理后,可以使得数组a的第2个数据为第2小。 第i次,在数组a后的n-i+1个数据中,经过类似选择处理后,数组a的第i个数据为第i小。 第n-1次,在数组后的2个数据中,经过类似处理后,总可以使数组a的第n-1个数据为第n-1小。而这时候第n个数据是第n小。 查找算法 查找之前要求排序,不然无章可查 顺序查找 按照排好序的顺序进行查找,比如对一个升序排列的数组中,找到第一个大于需要查找的数 折半查找(二分查找) 折半查找 先给数据排序(例如按升序排好),形成有序表,然后再将key与正中元素相比,若key小,则缩小至右半部内查找;再取其中值比较,每次缩小1/2的范围,直到查找成功或失败为止。 折半查找 有序插入 首先查找要插入的位置,假设位置为a[L]之前 则: for (i =n+1;i L;i--) a[i]=a[i-1] 有序删除 比如要删除a[d]这个元素, 则 for (j = d;j n;j++) a[j]=a[j+1] 关于选择排序 算法:N元数组a[0]~a[N-1]由小到大排序:第0步:找到a[0]~a[N-1]中的最小值元素与a[0]交换;第1步:找到a[1]~a[N-1]中的最小值元素与a[1]交换;第2步:找到a[2]~a[N-1]中的最小值元素与a[2]交换; …第i步:找到a[i]~a[N-1]中的最小值元素与a[i]交换;…第N-2步:找到a[N-2]~a[N-1]中的最小值元素与a[N-2]交换。算法停止。 程序一 int i,j,minj,t; ? ?for (i = 0;i N-1;i++) { ? ?? ?for (j = i + 1;j N-1;j++)? ?? ? if (a[j] a[i]) {? ?? ?? ? ?t = a[i];? ?? ?? ? a[i] = a[j];? ?? ?? ? a[j] = t; ? ?? ? }? ?} 改进程序 int i,j,minj,t; ? ?for (i = 0;i N-1;i++) { ? ?? ?minj = i; //有什么作用?? ?? ?for (j = i + 1;j N;j++)? ?? ?if (a[j] a[minj])? ?? ?? ? minj = j;? ?? ?if (minj != i) {? ?? ?? ?t = a[i];? ?? ?? ?a[i] = a[minj];? ?? ?? ?a[minj] = t; ? ?? ?}? ?} 找鞍点的问题 首先要理清楚思路,再动手编程序 for (i=0;i3;i++){ max=a[i][0]; for (j=0;j3;j++){ if (a[i][j]max){ max=a[i][j]; maxj=j; /*求出行中最大数*/ } } for(k=0,flag1=1;k3 flag1;k++){ if (maxa[k][j]) flag1=0; /*算出该数是否为列中最小*/ } if (flag1==1){ printf(\n第%d行,第%d列的%d是鞍点\n,i,maxj,max); flag2=1;
您可能关注的文档
- 行政事务流程图讲述.doc
- 行政事务部管理实务讲述.doc
- 血细胞形态基本特征_2讲述.ppt
- 行政公文格式讲述.ppt
- 行业报告ppt讲述.ppt
- 行政人事年终总结PPT模板讲述.ppt
- 血液标本采集及临床讲述.ppt
- 行政与诉讼考前绝密直播-讲述.ppt
- 行政人事商务责权讲述.doc
- 锻炼积极的心态-是你成功路上必备的精神良药详解.ppt
- 北师大版二年级下册数学全册分层作业设计.pdf
- Recycle1(1)英语五年级下册分层作业人教PEP.pdf
- Module 7 Unit2 I’ll be home at seven o’clock英语五年级下册分层作业外研版三起.pdf
- 北师大版三年级下册数学全册分层作业设计.pdf
- 人教PEP英语四年级下册全册分层作业设计.pdf
- Module 8 Unit1 Will you help me英语五年级下册分层作业外研版三起.pdf
- 统编版六年级道德与法治下册全册单元检测卷.pdf
- Recycle1(1)英语四年级下册分层作业人教PEP.pdf
- Recycle(1)英语六年级下册分层作业人教PEP.pdf
- 苏教版三年级下册数学全册分层作业设计.pdf
最近下载
- T CFPA012-2022消防用压接式涂覆碳钢管材及管件.pdf VIP
- 社会支持评定量表(SSRS)调查问卷模板.docx VIP
- 综合英语(2)句子翻译.doc
- 无人机农药喷洒服务协议.pdf
- 正确认识和处理科学技术发展与伦理道德关系.doc VIP
- 2608中级财务会计(二)-国家开放大学-2022年1月(2021秋)期末考试真题及标准答案-会计学(会统),金融(金),会计学(财会),会计学(财会试).pdf
- VDA63-2016--过程审核培训教材.pptx
- 中职幼师专业简笔画第八章_教案.doc VIP
- 《手足口病的防控》课件.pptx VIP
- 二年级100以内的脱式加减法练习题及答案(二年级数学计算题100道).pdf
文档评论(0)