排序算法的程序实现.ppt

上传人:牧羊曲112 文档编号:6417575 上传时间:2023-10-29 格式:PPT 页数:15 大小:268.99KB
返回 下载 相关 举报
排序算法的程序实现.ppt_第1页
第1页 / 共15页
排序算法的程序实现.ppt_第2页
第2页 / 共15页
排序算法的程序实现.ppt_第3页
第3页 / 共15页
排序算法的程序实现.ppt_第4页
第4页 / 共15页
排序算法的程序实现.ppt_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《排序算法的程序实现.ppt》由会员分享,可在线阅读,更多相关《排序算法的程序实现.ppt(15页珍藏版)》请在三一办公上搜索。

1、5.3 排序算法的程序实现,冒泡排序思想:在一列数据中把较小的数据逐次向上推 移的一种排序技术。,1、冒泡排序算法,例:进行体操比赛时,有4位裁判员为运动员评分。运动员最后得分是从这4位裁判分别给出的4个分数中,去掉一个最高分和一个最低分的平均分。,(1)冒泡排序的过程:(8.5,9.0,7.0,8.0),第1遍,第2遍,第3遍,i=1,i=2,i=3,程序:for i=1 to 3 for j=4 to i+1 step-1 if d(j)d(j-1)then t=d(j)d(j)=d(j-1)d(j-1)=t endif next j next i,练习1、下表中的原始数据是一组学生的军训

2、打靶成绩,若采用冒泡排序算法对其进行排序,则第14遍的排序结果分别是(),2、陈晓峰和同学们去农科院开展研究性学习,大家都收获很大,晓峰设计了一个Visual Basic程序,他把同学们收集到的水稻亩产量和同学姓名已分别保存在数组a和数组b中,第i个同学收集的亩产量保存在a(i)中,对应的同学姓名保存在b(i)中,最后按亩产量从高到低进行排序。程序界面如图所示,左边列表框List1中显示的是所有同学收集到的原始数据,单击排序按钮(Command1)后,在右边的列表框List2中显示排序完成后的结果(按亩产量从高到低排列)。,解决此问题的算法流程图如图所示,相应的排序部分程序如下:Dim a(1

3、 To n)As Single Dim b(1 To n)As StringPrivate Sub Command1_Click()Dim i As Integer,j As Integer,c As Single,t As String For i=1 To n 设共有n名同学 For j=n To i+1 If Then c=a(j-1):a(j-1)=a(j):a(j)=c t=b(j-1):b(j-1)=b(j):b(j)=t End If Next j Next i For i=1 To n List2.AddItem Str(a(i)+b(i)Next iEnd Sub,Priva

4、te Sub Form_Load()此过程用于对数组a和数组b进行初始赋值,代码略End Sub,选择排序的基本思想:在所有记录中选出最小(大)的数据,把它与第一个数据交换,然后在其余的记录中再选出最小(大)的数据与第二个数据交换。以此类推,直至所有数据排序完成。,2、选择排序算法,例:进行体操比赛时,有4位裁判员为运动员评分。运动员最后得分是从这4位裁判分别给出的4个分数中,去掉一个最高分和一个最低分的平均分。,(1)选择排序的过程:(8.5,9.0,7.0,8.0),第1遍,第2遍,第3遍,i=1,i=3,i=2,程序:for i=1 to 3 k=i for j=i+1 to 4 if

5、d(k)d(j)then k=j next j if ki then t=d(i)d(i)=d(k)d(k)=t endif next i,练习1、下表中的原始数据是一组学生的军训打靶成绩,若采用选择排序算法对其进行排序,则第14遍的排序结果分别是(),2、某协会进行钓鱼比赛,最后有十人进入决赛,录入员编制了如下Visual Basic程序,功能是根据成绩进行排序,程序中数组a保存所有参赛者的成绩,数组b保存此成绩对应的姓名,第i位参赛者的成绩保存在a(i)中,姓名保存在b(i)中。程序界面如图所示,左边列表框List1中显示原始数据(成绩和相应的姓名),单击 排序按钮(Command1),排

6、序后的结果按成绩从高到低显示在列表框List2中。,解决此问题的算法流程图如图所示,排序部分的程序段如下:Dim a(1 To 10)As SingleDim b(1 To 10)As StringPrivate Sub Command1_Click()Dim i As Integer,j As Integer,k As Integer,x As Single,y As StringFor i=1 To 9 k=i For j=i+1 To 10 If Then k=j Next j If k i Then x=a(i):a(i)=a(k)::y=b(i):b(i)=b(k):b(k)=y End IfNext i For i=1 To 10 List2.AddItem Str(a(i)+b(i)Next iEnd Sub,Private Sub Form_Load()此过程用于对数组a和数组b进行初始赋值,代码略End Sub,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号