VB教程——排序算法复习.ppt

VB教程——排序算法复习.ppt

ID:62118198

大小:406.50 KB

页数:23页

时间:2021-04-17

VB教程——排序算法复习.ppt_第1页
VB教程——排序算法复习.ppt_第2页
VB教程——排序算法复习.ppt_第3页
VB教程——排序算法复习.ppt_第4页
VB教程——排序算法复习.ppt_第5页
资源描述:

《VB教程——排序算法复习.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、排序问题1、冒泡法(起泡法)2、顺序交换法3、选择法4、插入法1、冒泡法首先我们来看把最大的那个数放在最后位置上的方法:假设有5个数,分别为10,2,6,7,4,存放在a(1)-a(5)中。首先,从a(1)到a(5),相邻的两数两两进行比较,在每次比较过程中,若前一个数比后一个数大,则交换两元素的内容。第一轮的比较过程:forj=1to4ifa(j)>a(j+1)Thent=a(j):a(j)=a(j+1):a(j+1)=tEndifNextj1、冒泡法现在重复上述算法:把a(1)到a(4)中的最大数放在a(4)中,a(1)到a(3)中的最大数放在a(3

2、)中,a(1)与a(2)中的最大数放在a(2)中。这样一共经过4次选大就把a(1)到a(5)中的数进行由小到大排序。在排序过程中小数象气泡一样上浮,而大数逐个下沉,所以叫起泡法。第1轮:forj=1to4ifa(j)>a(j+1)Thent=a(j):a(j)=a(j+1):a(j+1)=tEndifNextj第2轮:forj=1to3ifa(j)>a(j+1)Thent=a(j):a(j)=a(j+1):a(j+1)=tEndifNextj第3轮:forj=1to2ifa(j)>a(j+1)Thent=a(j):a(j)=a(j+1):a(j+1)=t

3、EndifNextj第4轮:forj=1to1ifa(j)>a(j+1)Thent=a(j):a(j)=a(j+1):a(j+1)=tEndifNextj第i轮:forj=1to5-iifa(j)>a(j+1)Thent=a(j):a(j)=a(j+1):a(j+1)=tEndifNextjFori=1to4Nexti1.冒泡法冒泡法程序清单:Dima(1To5)AsIntegerFori=1To5a(i)=Val(InputBox("输入一个数"))NextiFori=1to4Forj=1To5-iifa(j)>a(j+1)Thent=a(j):a(j

4、)=a(j+1):a(j+1)=tEndifNextjNextiFori=1To5Printa(i);Nexti冒泡排序思考:如果这5个数是2,4,6,7,10,简述程序执行流程。1.冒泡法改进算法:Dima(1To5)AsIntegerFori=1To5a(i)=Val(InputBox("输入一个数"))NextiFori=1to4flag=0Forj=1To5-iifa(j)>a(j+1)Thent=a(j):a(j)=a(j+1):a(j+1)=t:flag=1EndifNextjIfflag=0ThenExitForNextiFori=1To5

5、Printa(i);Nexti1.冒泡法对已知存放在数组中的n个数,用冒泡法按递增顺序排序。(1)从第一个元素开始,将相邻的数比较,若为逆序,就交换,比较完一轮,最大的数已沉底,成为数组中的最后一个元素a(n)(2)对a(1)和a(n-1)的n-1个数进行同(1)的操作,次大的数放入a(n-1)中,完成第二轮排序。(3)进行n-1轮排序,所有的数排序完毕。1.冒泡法n个数冒泡法递增排序程序清单:Dima%(),i%,j%,n%n=InputBox("请输入一个正整数")ReDima(1Ton)Fori=1Tona(i)=Int(Rnd*100):Prin

6、ta(i);NextiFori=1Ton-1Forj=1Ton-iIfa(j)>a(j+1)Thent=a(j):a(j)=a(j+1):a(j+1)=tEndIfNextjNextiPrintFori=1TonPrinta(i);Nexti2、顺序交换法我们再来看一种将最小的数放在第一个位置的算法先设定用a(1)存放最小值,然后用a(1)分别与其后的每一个数a(j)(j=2..5)进行比较,在比较过程中如果a(1)不是小的数,就将a(1)与a(j)互换。第一轮的比较过程Forj=2To5if(a(1)>a(j))Thent=a(1):a(1)=a(j)

7、:a(j)=tEndifNextj2、顺序交换法现在重复上述算法:把a(2)到a(5)中的最小数放在a(2)中,a(3)到a(5)中的最小数放在a(3)中,a(4)与a(5)中的最小数放在a(4)中。这样一共经过4次选小就把a(1)到a(5)中的数进行由小到大排序。第1轮:forj=2to5ifa(1)>a(j)Thent=a(1):a(1)=a(j):a(j)=tEndifNextj第2轮:forj=3to5ifa(2)>a(j)Thent=a(2):a(2)=a(j):a(j)=tEndifNextj第3轮:forj=4to5ifa(3)>a(j)T

8、hent=a(3):a(3)=a(j):a(j)=tEndifNextj第4轮:

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。