当前位置:文档之家› 程序伪代码

程序伪代码


定义两个数组,一个用于存储选 手号(arynum),另一个存储选 手对应的成绩(aryscore)
程序运行时,读入小组选手号及其成绩 通过两层循环对数组( aryscore ) 进行排序,外层循环控制排序趟数, 内层循环控制元素的对比与交换。 当成绩数组(aryscore) 的元素需要交换时,同 时交换选手数组 (arynum)的相应元素。
把它们从小到大进行排列.
3.4
对数据进行排序
1、实例分析:
3 5 2 1 4
比较交换的伪代码:
For I=0 to 4 for j=4 to 0 step –1
第 1 趟
3
5
2
4
1
3
5
4
2
1
if a(j)>a(j-1) then
交换a(j)和a(j-1)的位置 End if
不交换
3
ห้องสมุดไป่ตู้
5
4
2
1
Next j
实例分析:
颜色较深的是实际发生了交换的元素.
图:冒泡法排序示意图
请将下面的伪代码填写完整。
For I=0 to ____ to step –1
for j=4
if
a(j)>a(j-1)
then
交换a(j)和a(j-1)的位置 End if Next j Next i
练习:
8个100米决赛数据:
13.91、14.01、13.26、13.44、15.17、14.54、13.99、14.56
交换伪代码:
3 5 2 1 4
For I=0 to 4
5 3 2 1 4
for j=0 to 4 if a(j)<a(j+1) then
5
3
2
1
4
交换a(j)和a(j+1) 的位置
End if Next j Next I
5
3
2
1
4
5
3
2
4
1
从顶部到底部进行比较(从大到小进行排序)
从顶部到底部进行比较(从小到大进行排序)
next j
Next I
程序源代码:
Dim aryplayer(9) as integer, inttemp as integer
Dim aryscore(9) as single, sngtemp as single Dim I as integer, j as integer for I=0 to 9 aryplayer(I)=txtNum(I).text
aryscore(I)=txtscore(I).text
next I For I=0 to 8 for j=9 to I+1 step –1
if aryscore(j)>aryscore(j-1) then
inttemp=aryplayer(j) aryplayer(j)=aryplayer(j-1) aryplayer(j-1)=inttemp
对数据进行排序
理解什么是排序算法 学会用冒泡法对数据排序
以下五个气泡排序的初始状况如下:
请问五个气泡的最终排序如何?
一、冒泡法排序算法
所谓排序:就是指将一个无序序列排列成一个有 序序列的过程。 冒泡法排序概念:“冒泡法排序”也叫“起泡 法排序”,是一种比较简单,易懂的交换排序
方法,它能过将相邻元素进行比较和交换,逐
控件数组是共享控件名称、事件的相同 类型的控件集合,它们可以像一般的数 组变量一样通过索引号被直接引用。
冒泡排序法
如果按升序排序,则方法为: 将相邻两个数比较,把小数对调到前边,如 此进行一轮後,就会把最大的数互换到最后,再 进行一次,则会把第二大数排在倒数第二的位置 上,进行N-1次後,整个数列即可排好. 在这种排序过程中,小数如果气泡一样逐层 上伏,而大数逐个下沉,因此,被形象的喻为 “冒泡”.
001
002
003
004
005
006
007
009
008
010
成绩:
7
5
9
10
4
1
12
18
15
17
………………
8个100米决赛数据:
13.91、14.01、13.26、13.44、15.17、14.54、13.99、14.56
Hao
程序伪代码:
N=10 将10名选手的编号读入数组aryNum 将10名选手的成绩读入数组aryScore For I=0 to n-2(共9次) for j=n-1 to I+1 if aryscore(j)>aryscore(j-1) then 交换 aryNum(j) 和 aryNum(j-1)的值 交换 aryscore(j)和 aryscore(j-1)的值 end if
步将一个无序序列排列为一个有序序列。
将被排序的记录数组A[n]垂直排列,每个记录A[i]看作 是重量为A[i].key的气泡。根据轻气泡不能在重气泡之 下的原则,从下往上或从上往下扫描数组A:凡扫描到
违反本原则的轻气泡,就使其向上“飘浮”。如此反复
进行,直到最后任何两个气泡都是轻者在上,重者在下 为止。 将元素按从小到大的顺序排列称为升序排列。 将元素按从大到小的顺序排列称为降序排列。
5 3 4 2 1
Next i
从底部往顶部进行比较(按从小到大进行排序)
1、试画出比较的趟数;
2、从底部往顶部进行比较(假设按从小到大进行排序时,哪行伪代码进行修改) If a(j)< a(j-1)
3 5 2
then
1 4
思考题:
3
5
2
1
4
3
5
1
2
4
3
1
5
2
4
1
3
5
2
4
3、从顶部往底部进行比较(假设按从大到小或从小到大进行排序时,代码怎么改)
上段程序,定义了两个数组变量 aryplayer和aryscore,分别用于保存选手 的编号和成绩;定义了两个临时变量 inttemp和sngtemp,用于排序时进行数 据交换。程序首先通过循环语句,向数 组中读入选手的编号和成绩;然后,通 过两层循环对成绩进行排序;最后,再 通过循环语句输出排序后的选手编号和 成绩。
例:P61明日之星英语大赛,选手成绩进行排序(从大到小进行排序) 编号:
001 002 003 004 005 006 007 008 009 010
成绩:: 7
5
9
10
4
1
12
15
18
17
编号:
001
002
003
004
005
006
007
008
009
010
成绩:: 7
5
9
10
4
1
12
15
18
17
编号:
sngtemp=aryscore(j)
aryscore(j)=aryscore(j-1) aryscore(j-1)=sngtemp end if next j Next I
For I=0 to 9 txtsNum(I).text=aryplayer(I) txtsScore(I).text=aryscore(I) Next i
相关主题