计算机等级考试二级VB常用算法(6):排序

计算机等级考试二级VB常用算法(6):排序,第1张

计算机等级考试二级VB常用算法(6):排序,第2张

1.算法说明
1)按选择排序
(1)从N个数中选择最小数的下标,将最小数和第一个数之间的位置切换出循环;
(2)除第一个数外,按方法(1)从剩余的n-1个数中选择下一个最小的数,与第二个数交换位置;
(3)以此类推,最终形成一个递增序列。
例如:
8 6 9 3 2 7
第一次交换后269387
第二次交换后239687
第三次交换后236987
第四次交换后2 3 6 7 8 9
第五轮无交换2 3 6 7 8 9

程序代码如下:
私有子xzpaixu(子如果盛为假,则按降序排列。
Dim i As Integer,As Integer
Dim temp As double
Dim m As Integer
for I = lbound(a)to ubound(a)-1 ' for array size-1 round比较
m = i '在I round比较中, 假设第' I个元素是j = i+1到UBound(a)最有价值的元素
'在剩下的元素中找出最有价值的元素的下标并记录在M中
如果是升序,则M记录最小元素的下标,否则, 记录元素下标
if a(j)< a(m)then m = j
else
if a(j)> a(m)then m = j
end if
next j '将最有价值的元素与第一个
a(I)= a(m)
a(m)= temp
next I
end sub
调用此过程的示例 dim b(6)As Double
b(1)= 8
b(2)= 6
b(3)= 9
b(4)= 3
b(5)= 2
b(6)= 7
Call xzPaiXu(b,True)
For i% = 1到6
Print b(I)
Next
End Sub

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 计算机等级考试二级VB常用算法(6):排序

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情