VB选择排序专题_第1页
VB选择排序专题_第2页
VB选择排序专题_第3页
VB选择排序专题_第4页
VB选择排序专题_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、VB选择排序专题班级姓名知识点回顾:1、 数组的作用:一组意义相同,类型相同的数据的保存,通常借助于数组。如:高二年级所有同学的学籍 号可定义为大小为 700 (只能多不能少)的long类型的数组xjhl to 700)或xjh(699);2、 数组名称可自取:符合以字母开头、除了外不能有其他字符、不能用VB已用的关键字即可;3、 数组下标的定义可以从任何数开始,但通常为0或1,如:a(19),表示下标从0开始到19; a(1 to 19) 表示下标从1开始。下标即位置,能代表数组值。4、 数组赋初值方法多样,通常用循环语句。没有赋值默认数组中每个数初值为0或FALSE或“”。5、 排序概念和

2、意义:把一组类型相同的数据按照 升序或者降序的规律排列起来。6、排序的算法要点:将N个数据保存在数组中;理清是升序或是降序排序一一升序为从小到大,降序为从大到小;算法很多一一冒泡排序、选择排序、插入排序、希尔排序、快速排序等7、 选择排序的特征:以降序为例一一第一遍排序,找出最大值的位置,与数组中第一个数交换,第二遍排序,找出次大值的位置,与数组中第二个数交换。8、关于选择排序需理解:探N个数最多进行N-1遍排序;两数比较的次数最多为N*(N-1)/2;两数交换次数最多为:N-1次;选择排序的变式即改进算法非常多,比如N个数据排序时,发现某一遍排序两两比较过程中已没有数据交换则可以停止继续排序

3、,比如比较过程中直接交换等,在练习中要加强理解和记录;9、 选择排序的经典代码:(以降序为例,所有for语句都要熟练转化为 do while语句)for i=1 to n-1控制排序遍数n-1k=i第i趟排序假设i位置上的数最大for j=i+1 to n匕较剩下的数,次数为n-i次if d(k) d(j) the n k=j己录比较之后较大数的位置n ext jif ki the n如果最值位置有变化的话则交换d(i)=d(i)+d(k):d(k)=d(i)-d(k): d(i)=d(i)-d(k)end ifnext ifor i=n to 2 step-1控制排序遍数n-1k=i第i趟排

4、序假设i位置上的数最大for j=i-1 to 1 step -1或写成 for j=1 to i-1 step 1if d(k)d(j) the n k=j记录比较之后较大数的位置n ext jif ki the nt=d(i) : d(i)=d(k): d(k)=tend ifn ext i如果最值位置有变化的话则交换,巩固练习:1、2、 句3、在 VB 中, 如果变量 p 用来存储某张试卷上的缺考填涂标记, A IntegerB BooleanC SingleVB 语句“ Dim a(50) As String ”定义的数组元素个数以及第 Dim a(1 to 50) As long ”

5、定义的数组元素个数以及第 A. 51 , a(7)B.50, a(7)有如下 Visual Basic 程序段:C. 51则 p 应采用的最适合的数据类型是D String8 个数组元素分别为(8 个数组元素分别为(,a(8)D.50,a(8);VB语m = a(2)For j = 3 To 50If a(j) m Then m = a(j)Next jMsgbox(str(m)该程序段执行后,变量m中存储的是(AC)B、a(2)D、a(1)4、a(1) 至 a(50) 中的最小值、a(2) 至 a(50) 中的最小值的位置 以下程序执行后, i 的值是( )Dim a(1 To 5) As

6、IntegerDim f As Booleana(1) = 23: a(2) = 12: a(3) = 56: a(4) = 34: a(5) = 10 i = 1: f = True至 a(50)至 a(50)中的最大值 中的最大值的位置Do While i = 5 And f = True If a(i) = 56 Then f = False i = i + 1LoopLabel1.Caption = iA 6B 3C4在 2017 年秋季学校运动会上,男生第一组 6 位选手的百米成绩(单位:秒)分别是“ 13.8、13.1、11.0”,若使用选择排序法将该组的成绩按第一名、第二名、第三

7、名5、513.4、12.3 、的顺序排序,则第一遍11.2、排序后的顺序是(A. 11.0 11.2C. 11.0 11.26、有一组 10 个数据的无序序列,利用选择排序算法进行从小到大的排序,需要比较的次数和最多需要进 行加工的遍数,以及最多交换数组数据的次数分别为( )A. 9, 9,9B.15,9,8C.45,9,9D.45 ,8, 87、在NBA某赛季中,快船队5场比赛得分依次为 97, 89, 111, 70, 90,若采用选择排序算法对其进行从 小到大排序,在整个排序过程中,数据97被交换的次数是 ()A 1B 2 C 3 D 412.313.4);两遍排序后的顺序是(13.8

8、13.1 13.412.3 13.1 13.8);B.11.012.311.213.813.113.4D.11.013.412.311.213.813.18、 用选择排序算法对一组学生的身高数据进行升序排序,已知第一遍排序结束后的数据序列为165, 168,178, 175, 171 ,则下列选项中可能是原始数据序列的是()A、 175, 178,168, 165,171B、178, 168,165, 175,171C、 165, 178,168, 175,171D、165, 168,171, 175,1789、对存储在stu ( 0 ton ) 中的n+1个元素用选择排序算法进行排序,元素交

9、换次数的范围和元素比较次数的值分别为()A、 0, n , (n-1)*n/2B、 1 , n-1 , (n-1)*n/2C、 0, n , (n+1)*n/2D、 1 , n-1 ,(n+1)*n/210、以下是选择排序主要部分,其中线框内代码用于寻找d(a)到d(n)的最小值的下标(即通常所说的位置)。for a=1 to n-1k=aFor b=a+1 to nIf d(b)d(k) then k=bNext bn ext a框内代码运行结束时,保存最小值的数组元素一定是()A、d(n)B 、d(b) C 、d(a) D 、d(k)11、以下程序段是 选择排序的核心代码,阅读并完成以下1

10、0 12题: #1 For i=1 to n-1 step 1 #2 k=i : j=i+1#3Do while j=n#4If d(j)d(k) then k=j#5Loop #6 Next i12、代码中缺少一个语句,造成程序错误,应补充在(A、#2后面 B 、#3后面、#4后面 D 、#5后面13、缺少的语句是 ()A、while ja(k) the n(3next jif ki the n t=a(k):a(k)=a(i):a(i)=tList1.addltem str(a(i)3此题我们采用了O (冒泡排序 解析算法 选择排序 枚举算法)16、在淘宝网上搜索商品,可以按用户需要根据价

11、格进行升序或降序排列。用选择排序算法编写函数实现 功能。主要程序如下,其中n为商品个数,jp数组存放商品价格信息,sx为True时表示升序。请将划线部分补充完整。Function px(sx as boolea n)Dim i,j,k as in tegerDim t as Doublefor i=n to 2 step -13for j=i-1 to 1if Othenif jg(j)jg(k) thenEnd ifthen t=jg(i):jg(i)=jg(k):jg(k)=tn ext j ifn ext iEnd fun ctio n17、编写VB程序,实现如下功能:单击排序数组a ”

12、按钮Comma nd时,对已有数组 a的数据进行升序排 列,并显示在文本框 Label1中;单击显示数组 b”按钮Command2寸,将升序数组b的数据显示在文本框 Label2中;再单击合并 a和b”按钮Command3寸,对数组a和数组b升序合并到字符串中,将合并后的 数据在文本框Label3中显示。(运行效果如图所示)。Dim a(1 To 6), b(1 To 6) As IntegerPrivate Sub Command1_Click() 对数组a中的数据进行排序Dim i As Integer, j As Integer, k as integera(1) = 53 :a(2)

13、= 18:a(3) = 62:a(4) = 22:a(5) = 6:a(6) = 25:s = For i = 1 To 5k = iFor j =If a(k) a(j) Then k=jNext jIf i k The n t = a(k): a(k) = a(i): a(i) = tNext iFori = 1 To 6s = s + Str(a(i)Next iLabel1.Capti on = sEnd SubPrivate Sub Comma nd2_Click()b(1) = 3: b(2) = 8: b(3) = 15: b(4) = 27: b(5) = 38: b(6) = 49此处部分代码省略End SubPrivate Sub Command3_Click() 将数组a和b中的数据逐个比较后添加到新的字符串s中,并显示si = 1: j = 1: s =Do While i =

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论