VB常用算法(六)排序

VB常用算法(六)排序,第1张

VB常用算法(六)排序,第2张

1.算法描述

1)按选择方法排序


(1)从N个数中选择最小数的下标,遍历循环,将最小数与第一个数交换位置;


(2)除第一个数外,按方法(1)从剩余的n-1个数中选择下一个最小的数,与第二个数交换位置;


(3)以此类推,最终形成一个递增序列。


例如:


8 6 9 3 2 7


在第一次交换后2 6 9 3 8 7


在第二次交换之后2 3 9 6 8 7


第三轮交换后2 3 6 9 8 7


第四次交换后2 3 6 7 8 9


第五轮没有交换2 3 6 7 8 9


程序代码如下:


Private Sub xzPaiXu(a()为Double,sheng为Boolean)


'a是要排序的数组;如果盛为真,则按升序排序;如果SHENG为False,则按降序排序。


Dim i为整数,j为整数


Dim temp为Double


Dim m为整数


for I = lbound (a)到ubound (a) -1 '用于数组大小-1轮比较。


m = i '在第I轮比较中,假设第一个


'i元素是最有价值的元素。


For j = i+1 To UBound(a)'找出剩余元素中最多的元素


'下标的值元素,并以m记录它。


如果sheng Then '在升序中,m记录最小的元素。


'下标,否则将记录元素下标。


如果a(j) < a(m),则m = j


其他


如果a(j) > a(m),则m = j


结束If


接下来j '与第I个元素交换最有价值的元素。


temp = a(i)

a(i) = a(m)


a(m) = temp


接下来我


End Sub

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

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情