(完整版)VB选择排序专题.doc

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

VB 选择排序专题

班级姓名知识点回顾:

1、数组的作用:一组意义相同,类型相同的数据的保存,通常借助于数组

号可定义为大小为700(只能多不能少)的long 类型的数组xjh1 to 700)

。如:高二年级所有同学的学籍或 xjh(699) ;

2、数组名称可自取: 符合※以字母开头、※除了“ _”外不能有其他字符、※不能用VB 已用的关键字即可;

3、数组下标的定义可以从任何数开始,但通常为0 或 1,如: a(19),表示下标从0 开始到 19; a(1 to 19) 表示下标从 1 开始。下标即位置,能代表数组值。

4、数组赋初值方法多样,通常用循环语句。没有赋值默认数组中每个数初值为0 或 FALSE或“”。

5、排序概念和意义:把一组类型相同的数据按照升序或者降序的规律排列起来。

6、排序的算法要点:

※将 N 个数据保存在数组中;

※ 理清是升序或是降序排序——升序为从小到大,降序为从大到小;

※算法很多——冒泡排序、选择排序、插入排序、希尔排序、快速排序等

7、选择排序的特征:以降序为例——第一遍排序,找出最大值的位置,与数组中第一个数交换,第二遍排

序,找出次大值的位置,与数组中第二个数交换。

8、关于选择排序需理解:

※ N 个数最多进行N-1 遍排序;两数比较的次数最多为N*(N-1)/ 2;两数交换次数最多为:N-1 次;

※选择排序的变式即改进算法非常多,比如 N 个数据排序时,发现某一遍排序两两比较过程中已没有数

据交换则可以停止继续排序,比如比较过程中直接交换等,在练习中要加强理解和记录;

9、选择排序的经典代码:( 以降序为例,所有for 语句都要熟练转化为do while 语句 )

for i=1 to n-1’控制排序遍数n-1

k=i’第 i 趟排序假设i 位置上的数最大

for j=i+1 to n’比较剩下的数,次数为n-i 次

if d(k)< d(j) then k=j’记录比较之后较大数的位置

next j

if k<>i then’如果最值位置有变化的话则交换

d(i)=d(i)+d(k):d(k)=d(i)-d(k): d(i)=d(i)-d(k)

end if

next i

for i=n to 2 step-1

k=i

for j=i-1 to 1 step -1

if d(k)>d(j)then k=j

next j

if k<>i then

t=d(i) : d(i)=d(k): end if

next i d(k)=t

’控制排序遍数n-1

’第 i 趟排序假设i 位置上的数最大

’或写成for j=1 to i-1 step 1

’记录比较之后较大数的位置

’如果最值位置有变化的话则交换,

巩固练习:

1、在 VB中,如果变量 p 用来存储某张试卷上的缺考填涂标记,则p应采用的最适合的数据类型是

A. Integer B.Boolean C. Single D . String

2、 VB 语句“ Dim a(50) As String”定义的数组元素个数以及第8 个数组元素分别为(

句“ Dim a(1 to 50) As long”定义的数组元素个数以及第8 个数组元素分别为()

A. 51 , a(7)

B.50,a(7)

C. 51,a(8)

D.50,a(8) ());VB语

3、有如下Visual Basic

m = a(2)

For j = 3 To 50

If a(j) > m Then m = a(j)

Next j

Msgbox(str(m))

程序段:

该程序段执行后,变量m中存储的是(A、a(1)至a(50)中的最小值

C 、a(2) 至 a(50) 中的最小值的位置

4、以下程序执行后,i 的值是()

Dim a(1 To 5) As Integer

Dim f As Boolean

B、 a(2)

D、 a(1)

至 a(50)

至 a(50)

中的最大值

中的最大值的位置

a(1) = 23: a(2) = 12: a(3) = 56: a(4) = 34: a(5) = 10

i = 1: f = True

Do While i <= 5 And f = True

If a(i) = 56 Then f = False

i = i + 1

Loop

Label1.Caption = i

A. 6 B . 3 C .4 D . 5

5、在 2017 年秋季学校运动会上,男生第一组 6 位选手的百米成绩(单位:秒)分别是“13.4、12.3、11.2、13.8、13.1、 11.0”,若使用选择排序法将该组的成绩按第一名、第二名、第三名的顺序排序,则第一遍

排序后的顺序是();两遍排序后的顺序是();

A. 11.0 11.2 12.3 13.8 13.113.4

B.11.0 12.3 11.213.8 13.113.4

C. 11.0 11.2 13.4 12.313.1 13.8

D.11.0 13.4 12.3 11.2 13.813.1

6、有一组10 个数据的无序序列,利用选择排序算法进行从小到大的排序,需要比较的次数和最多需要进

行加工的遍数,以及最多交换数组数据的次数分别为()

A. 9, 9,9

B.15, 9, 8

C.45,9, 9

D.45,8, 8

7、在 NBA某赛季中,快船队 5 场比赛得分依次为97, 89, 111, 70, 90,若采用选择排序算法对其进行从

小到大排序,在整个排序过程中,数据97 被交换的次数是()

A.1B.2C.3D.4

8、用选择排序算法对一组学生的身高数据进行升序排序,已知第一遍排序结束后的数据序列为165, 168,178, 175,171,则下列选项中可能是原始数据序列的是()

A 、175, 178, 168, 165, 171B、 178,168, 165, 175, 171

C 、165, 178, 168, 175, 171D、 165,168, 171, 175, 178

9、对存储在stu ( 0 to n )中的n+1个元素用选择排序算法进行排序,元素交换次数的范围和元素比较次

数的值分别为()

A、 [0 , n] ,( n-1 ) *n/2 C、 [0 , n] ,( n+1) *n/2 B

D

、 [1 ,n-1]

、 [1 ,n-1]

,( n-1 ) *n/2

,( n+1) *n/2

相关文档
最新文档