欢迎来到天天文库
浏览记录
ID:62014838
大小:151.00 KB
页数:23页
时间:2021-04-12
《排序、数组应用.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、【回顾】四种标准的数据类型——实型、整型、字符型、布尔型,它们由Pascal系统预先定义,可以直接用它们的标识符real、integer、char、boolean来说明需要定义的变量类型。用户自己可以定义的两个简单的数据类型——枚举类型和子界类型。枚举类型的一般定义如下:TYPE<枚举类型标识符>=(<标识符>,<标识符>…<标识符>);VAR<枚举类型变量表>:<枚举类型标识符>;子界类型的一般定义形式:TYPE<子界类型标识符>=<常量1>..<常量2>;VAR<子界类型变量表>:<子界类型标识符>;【回顾】数组是程序中最常
2、用的结构数据类型,用来描述由固定数目的同一类型的元素组成的数据结构。数组的每个元素和下标相关联,根据下标指示数组的元素。数组的定义形式:Type<数组类型标识符>=array[<下标类型>]of<元素类型>;Var<数组变量表>:<数组类型标识符>;例如:Typeart=array[1..10]ofreal;Vara,b:art;A[1]A[2]A[3]A[4]A[5]A[6]A[7]A[8]A[9]A[10]1.253.174.892.310.577.81-3.04.51.938.45下标可以是表达式。例如i=3时,A[i]=
3、4.89A[2*i-1]=0.57Fori:=1to10DoReadln(a[i]);Fori:=1to10DoWriteln(a[i]);在内存当中开辟连续的一串空间A[2]A[3]A[4]A[5]A[6]A[7]A[8]A[9]A[10]A[1]排序问题是一个十分重要的问题,并且排序的方法有很多种,我们今天学习使用数组进行排序的两种简单方法。【数组的应用】★例:输入20个数,将它们按照从高到低的次序排列以后输出。方法一:选择排序选择排序的基本思想:首先从要进行排序的数中选择最大的一个数,将它放在第一个位置,然后从剩下的数中选
4、择最大的放在第二个位置,如此继续,直到最后剩下的两个数中选出较大的数放在倒数第二个位置,剩下的一个数放在最后完成排序。可以在一个数组中进行排序工作,设数组a中存放20个未排序的数。选择排序a[1]a[2]a[3]a[4]a[5]a[6]457123547123745123745123745123745123第一趟结束754123754123754123754123第二趟结束754123754123754123第三趟结束754213754312第四趟结束754321第五趟结束★例:输入20个数,将它们按照从高到低的次序排列以后输出
5、。算法:1、输入20个数到数组a中;2、用外循环确定每一个数,需要循环19次;3、确定每一个数后,用内循环实现它与后面所有数的比较和交换;4、输出结果。Vara:array[1..20]ofreal;temp:real;i,j:integer;BeginFori:=1to20do{读入20个元素}read(a[i]);Fori:=1to19do{从第一个到倒数第二个依次确定每个数}Forj:=i+1to20do{确定的数与它后面所有的数进行比较}Ifa[i]6、a[j]:=tempEnd;Fori:=1to20do{输出排序后的结果}write(a[i]);End.★例:输入20个数,将它们按照从高到低的次序排列以后输出。上面的这一种方法由于每次交换两个元素需要执行3个语句,Ifa[i]7、在后面,然后比较第2个数和第3个数,仍将大的放在前面小的放在后面,如此继续,直到比较最后两个数,大的放在前面小的放在后面,此时第一趟结束,在最后的数必定是最小的数。重复以上步骤,从而完成排序。由于在排序过程中总是大数往前放,小数往后放,相当于气泡往上升,所以叫冒泡排序。a[1]a[2]a[3]a[4]a[5]a[6]457123547123574123574123574213574231第一趟结束754231754231754231754321第二趟结束754321754321754321第三趟结束754321754321第四趟8、结束754321第五趟结束冒泡排序★例:输入20个数,将它们按照从高到低的次序排列以后输出。算法:1、输入20个数到数组a中;2、用外循环实现将最小的数置后,需要循环19次;3、用内循环实现相邻两位数的置换;4、输出结果。Vara:array[1..20]ofr
6、a[j]:=tempEnd;Fori:=1to20do{输出排序后的结果}write(a[i]);End.★例:输入20个数,将它们按照从高到低的次序排列以后输出。上面的这一种方法由于每次交换两个元素需要执行3个语句,Ifa[i]7、在后面,然后比较第2个数和第3个数,仍将大的放在前面小的放在后面,如此继续,直到比较最后两个数,大的放在前面小的放在后面,此时第一趟结束,在最后的数必定是最小的数。重复以上步骤,从而完成排序。由于在排序过程中总是大数往前放,小数往后放,相当于气泡往上升,所以叫冒泡排序。a[1]a[2]a[3]a[4]a[5]a[6]457123547123574123574123574213574231第一趟结束754231754231754231754321第二趟结束754321754321754321第三趟结束754321754321第四趟8、结束754321第五趟结束冒泡排序★例:输入20个数,将它们按照从高到低的次序排列以后输出。算法:1、输入20个数到数组a中;2、用外循环实现将最小的数置后,需要循环19次;3、用内循环实现相邻两位数的置换;4、输出结果。Vara:array[1..20]ofr
7、在后面,然后比较第2个数和第3个数,仍将大的放在前面小的放在后面,如此继续,直到比较最后两个数,大的放在前面小的放在后面,此时第一趟结束,在最后的数必定是最小的数。重复以上步骤,从而完成排序。由于在排序过程中总是大数往前放,小数往后放,相当于气泡往上升,所以叫冒泡排序。a[1]a[2]a[3]a[4]a[5]a[6]457123547123574123574123574213574231第一趟结束754231754231754231754321第二趟结束754321754321754321第三趟结束754321754321第四趟
8、结束754321第五趟结束冒泡排序★例:输入20个数,将它们按照从高到低的次序排列以后输出。算法:1、输入20个数到数组a中;2、用外循环实现将最小的数置后,需要循环19次;3、用内循环实现相邻两位数的置换;4、输出结果。Vara:array[1..20]ofr
此文档下载收益归作者所有