预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共24页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

常见几种排序方法复习比较方向:从右往左比较,先确定左侧数组元素 规则:从右往左先定左Fori=1Ton-1 Forj=1Ton-i Ifa(j)>a(j+1)Then temp=a(j+1) a(j+1)=a(j) a(j)=temp EndIf Nextj NextiFori=nTo2step-1 Forj=1Toi-1 Ifa(j)>a(j+1)Then temp=a(j+1) a(j+1)=a(j) a(j)=temp EndIf Nextj NextiFori=nTo2step-1 Forj=nTon-i+2step-1 Ifa(j)>a(j-1)Then temp=a(j-1) a(j-1)=a(j) a(j)=temp EndIf Nextj NextiFori=1Ton—1 k=i Forj=nToi+1step-1 Ifa(j)<a(k)Thenk=j Nextj Ifk<>iThen t=a(i):a(i)=a(k):a(k)=t EndIf NextiFori=nTo2step-1 k=i Forj=1Toi-1 Ifa(j)<a(k)Thenk=j Nextj Ifk<>iThen t=a(i):a(i)=a(k):a(k)=t EndIf NextiFori=nTo2step-1 k=i Forj=i-1To1step-1 Ifa(j)<a(k)Thenk=j Nextj Ifk<>iThen t=a(i):a(i)=a(k):a(k)=t EndIf Nexti核心问题:无论哪一种排序,每一轮(遍)排序,都是将最大或最小的放在数组剩余元素最左侧或最右侧,应当确保接下来每一轮(遍)比较是对所有剩余数组元素的比较,不能有遗漏。某VB程序段如下: Fori=1To3 Forj=i+1To6 Ifa(j)<a(j-1)Thent=a(j):a(j)=a(j-1):a(j-1)=t Nextj Nexti 数组元素a(1)到a(6)的值依次为“99,100,30,21,43,19”,经过该程序段“加工”后a(4)、a(5)、a(6)的值依次为__________________插入法排序插入排序变形(升序)桶排序的算法思想 最快最简单的排序:桶排序 期末考试完了老师要将同学们的分数按照从高到低排序。班上只有5个同学,这5个同学分别考了5分、3分、5分、2分和8分,考得真是惨不忍睹(满分是10分)。接下来将分数进行从大到小排序,排序后是85532。那么有没有什么好方法编写一段程序,让计算机随机读入5个数然后将这5个数从大到小输出。如下图所示,桶排序的算法思想是这样的:要对分数进行排序,可以通过这样的方法来实现,假设有11个桶,从0~10对桶进行编号。每出现一个数,就在对应编号的桶中放一面小旗子,最后只要数数每个桶中有几面小旗子就可以了。例如2号桶中有1面小旗子,表示2出现了一次;3号桶中有1面小旗子,表示3出现了一次;5号桶中有2面小旗子,表示5出现了两次;8号桶中有1面小旗子,表示8出现了一次。在输出时,如果是升序排序,只要按照桶的编号,从小到大对桶进行检查,如果发现桶里面只要有1面以上的小旗子(非空)就输出桶的编号,如果有2面小旗子就连续输出两次,依次类推┈┈,这样就快速地实现了升序排列。而如果是在排序时去除重复的数据,则更加简单了。 一般来说,桶的算法思想主要有以下三种功能:1.桶计数功能、2.桶排序功能、3.验证数据是否存在。桶排序桶排序桶排序桶排序桶排序桶排序索引排序索引排序之结合选择法排序索引排序之结合冒泡法排序