


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一维数组应用(查找、排序)例一:查找数组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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 卡通幼儿园教学课件
- 天鹅的教学设计何课件
- 小班教学随笔莲山课件
- 2025-2026学年山东省齐河县一中高三生物第一学期期末经典模拟试题
- 国家开放大学《学前儿童卫生与保健》期末考试题库及答案-字母
- 期中说课稿-2025-2026学年中职基础课-基础模块3-教科版(2021)-(英语)-52
- 智能家居互联互通标准下的智能家居行业市场细分领域分析报告
- 为老年人打造一个友好的养老环境的协议
- 供热事故责任协议
- 2025年质量改进方法考试题及答案
- T-CITSA 57-2025 高速公路基础设施主数据标准
- 质量风险预警系统-洞察及研究
- 住院病人防止走失课件
- 2025年临床助理医师考试试题及答案
- 2025年南康面试题目及答案
- 2025年全国学宪法讲宪法知识竞赛考试题库(含答案)
- 定增基金管理办法
- 汽车标定工程师培训课件
- 速叠杯教学课件
- GB/T 45767-2025氮化硅陶瓷基片
- 2025年第十届“学宪法、讲宪法”活动知识竞赛题库及答案
评论
0/150
提交评论