全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一维数组应用(查找、排序)例一:查找数组A中是否有等于NUM的这个数,有,则返回这个数在数组中的位置;没有,则返回0。(假设A中有N个互异的整数)程序:CONST N = 10;VAR A:= ARRAY 1N OF INTEGER ; P,X : INTEGER;BEGIN 给数组A赋初值; WRITELN(PLEASE INPUT X : ); READLN(X); P := N; WHILE ( A P X)AND ( P 0 ) DO P:= P - 1; IF A P X THEN P:=0 ; WRITELN(P);END.改进:多定义1个A 0 ,即VAR A:= ARRAY 0N OF INTEGER ; 然后: P:=N; A 0 := X ; WHILE A P X DO P := P 1 ; 其中A 0 称为哨兵,减少了比较次数。例二:在一个已经排好序的数组中查找某一个数 。有则返回这个数在数组中的位置,没有则返回0。(假设A中有N个互异的整数)分析:可以用例一方法,但效率低,下面用“二分法”程序:CONST N = 10; VAR A:ARRAY 1 N OF INTEGER ; I,J,K,P,X :INTEGER ; FIND:BOOLEAN ; BEGIN WRITELN(INPUT A ORDERED ARRAY :); FOR I := 1 TO N DO READ (A I ) ; READLN; WRITE(INPUT X: ); READLN(X); I:=1 ;J:= N ;FIND := FALSE ; WHILE (NOT FIND )AND (I X THEN J:= K 1 ELSE I:= K + 1 ; END; IF FIND THEN P:= K ELSE P:= 0 ; WRITELN(P); END.例三:有N个数存放于数组A中,将其按照从小到大的顺序重新排列。选择排序法:用“打擂台”法将最小的1个数找出来放在数组的最前面。 然后在剩下的N-1个数中重复做上面的操作., 一共要N 1 趟。CONST N = 10 ;VAR A:ARRAY 1N OF INTEGER ; I,J,P,T:INTEGER ;BEGIN FOR I:= 1 TO N DO READ(A I ); READLN; FOR I:= 1 TO N-1 DO 重复 N-1次 BEGIN P:= I ; 假设A I 最小,后面的元素与它进行打擂台 FOR J:= I + 1 TO N DO IF A J 后面的元素)”则交换。经过N 1 趟,则排序结束。(或无交换,则结束。效率更高)。作用是:每次将大数放在后面,一趟过后最大者就在最后面了,再比较前面若干个数。CONST N = 10 ;VAR A:ARRAY 1N OF INTEGER ; I,K,T:INTEGER ; EXCHANGE:BOOLEAN ;BEGIN FOR I:= 1 TO N DO READ(A I ); READLN; K:=N ; K为计数器,控制 N-1 次 REPEAT EXCHANGE:=FALSE ; FOR I:= 1 TO K 1 DO IF A I A I + 1 THEN BEGIN T:=A I+1 ;A I+1 := A I ; A I := T ;EXCHANGE:= TRUE END; K := K 1 UNTIL (K = 1)OR (NOT EXCHANGE ); FOR I:= 1 TO N DO WRITE(A I :6); WRITELNEND.后记:1、若要将其按照从大到小的顺序排列,如何办? 2、其它排序方法:插入排序(在上一节课例一的基础上引申),快速排序.例四:用“筛选法”找出100以内的所有素数,并按每行10个数打印出来。分析:旧方法:FOR 循环; “筛选法”思想:数组A:2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 .99 100 指针P 删除2 的倍数 P 删除3 的倍数 P 删除5 的倍数 直到 P=100/2为止注:并不真正删除,只是作个标记(如置-1),P初始值为1,以后从前至后找第一个不等于-1的数组元数,重复删除程序:CONST N=100 ;VAR A:ARRAY 2N OF INTEGER ; 1 不是素数 P,I,J,NEWP,M:INTEGER;BEGIN FOR I:= 2 TO N DO A I := I ;P:= 1 ;REPEAT P:=P + 1 ; WHILE (A P = -1) AND (P = N DIV 2 )DO P:= P + 1 ; IF A P -1 THEN NEWP:= A P ; FOR I:= P + 1 TO N DO IF (A I -1 ) AND ( A I MOD NEWP = 0 ) THEN A I := -1 ;UNTIL ( NEWP N DIV 2 );M:= 0 ;FOR I:= 2 TO N DO IF A I -1 THEN BEGI
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年高血压健康管理试题及答案
- 2026事业单位招聘考试公共基础知识题库附答案详解(满分必刷)
- 2026新兵连心理测试题及答案
- 2025年甘肃省药品检查员资格考试(药械化流通)全真模拟试题及答案
- 2025年抢救流程试题及答案
- 初级中药师专业知识模拟试题及详细答案解析
- 《羊饲养与疫病防》课件
- 商务翻译实务第五单元企业简介翻译
- 危险化学品认知与管理
- 医疗器械监管情况介绍
- 2026年焊工技术比赛模拟试题(含答案)
- 第19课《想和做 》课件 2026-2027学年统编版语文九年级上册
- Unit 3 Smart Learning Section A Grammar Focus 课件(内嵌视频)2026-2027学年人教版英语九年级上册
- 安全生产治本攻坚三年行动工作任务清单
- 人教版五年级上册第三单元习作:故事新编 写作指导课件
- 2026年安全员C证(专职安全生产管理人员)考试题库及答案
- 林芝市巴宜区社区工作人员《网格员》考试全真模拟易错、难点汇编题库(附答案)
- 换热站系统调试作业方案
- 小学一年级同音字大全(带拼音+组词+字义区分课本高频)
- 重庆航天科工集团笔试题
- 校园食品安全知识竞赛题库(附答案)
评论
0/150
提交评论