全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一维数组应用(查找、排序)例一:查找数组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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 船舶运营与安全手册
- 物业管理智慧社区系统操作运营手册
- 印刷工艺与质量标准手册-2
- 化工工艺操作与应急响应手册
- 2026道德与法治二年级阅读角 阅读游记故事
- 汽车驾驶与维修培训手册
- 船舶管理与港口操作手册
- 木作打磨抛光处理工作手册
- 大数据挖掘与分析手册
- 2026年高校教师资格证之高等教育心理学复习提分资料带答案详解(精练)
- 2025年下半年浙江杭州市萧山区国有企业招聘人员笔试历年参考题库附带答案详解
- 2026年70周岁以上驾驶人三力测试模拟题
- 2026年《中华人民共和国保守秘密法》培训课件
- 攀枝花市2026年春季人才引进(484人)笔试备考试题及答案解析
- 2026年及未来5年中国美容美发机构行业发展监测及投资战略研究报告
- 升压站屏柜组立及二次接线专项施工方案
- 嘉兴浙江嘉兴市交通学校(嘉兴交通技工学校)校园招聘教师12人笔试历年参考题库附带答案详解
- 安全装置培训课件
- 雨课堂学堂在线学堂云《智能制造技术基础(华北电大 )》单元测试考核答案
- 建筑公司合同管理制度内容(3篇)
- 2025年江苏省镇江市中考英语一模试卷
评论
0/150
提交评论