全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一维数组应用(查找、排序)例一:查找数组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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- AI教育软件的设计原则与实施策略
- 感恩教育:心存感激传递温暖小学主题班会课件
- 筑牢与警惕平安校园同行小学主题班会课件
- 环保意识从小培养-生态教育小学主题班会课件互动
- 2026年文化项目合作终止函撰写指南4篇范文
- 2026二下数学第八单元说课课件
- 2026年工业设备全面检查计划通知7篇
- 财务部门内部绩效衡量表
- 合作结束后的项目专利资产清算函7篇范文
- 远离危险隐患守护平安校园小学主题班会课件
- DBJ33-T 1358-2025 建筑与市政工程有限空间作业安全技术规程
- 羊屠宰安全生产制度
- 2025年北京文旅部事业单位考试及答案
- 拉沙热培训课件
- 会展场馆安全培训课件
- 地下管线智能化监测施工方案
- 注塑模具浇口设计
- 高校计算机基础期末模拟试卷
- 单位员工餐厅整体保障服务方案
- 消防维保安全文明施工措施
- 备战2026年高考语文考试(新高考)易错点25 对“意义”与“用法”概念区分不清(语言文字运用之词语比较题)(原卷版)
评论
0/150
提交评论