我给你推荐一种简单的交换排序法。
如果如下为数据列arr(6)={A,B,C,D,E,F}(用字母代替,方便叙述)
从第一个数开始往下循环比较,总是将大的数替换到前面的位置,从大到小排序流程如下:
(1)arr(0)跟其余所有的数据挨个比较,把大的数换到arr(0),
arr(0)跟arr(1)比较,如果arr(0)>=arr(1),则进行下一个比较,如果arr(0)<arr(1)则将arr(0)和arr(1)互换;
arr(0)跟arr(2)比较,如果arr(0)>=arr(2),则进行下一个比较,如果arr(0)<arr(2)则将arr(0)和arr(2)互换;
....
直到比较完所有的数,此时arr(0)是最大的数了。
(2)arr(1)跟余下的数挨个比较,把大的数换到arr(1),最后第二大数就被换到arr(1)
....
(3)一直比较到arr(最后一位)
得到的数列就为一个从大到小的数列。
具体代码如下
dim arr()= new integer()={12,33,22,19,47,65,99}定义源数组
dim i,j as integer定义循环变量
dim count as long定义数组个数
count = Ubound(arr)-Lbound(arr)+1获取数组个数
for i = 0 to count-1
for j = i to count-1
if arr(i)<arr(j) then把大的数交换到前面
temp = arr(i)把小的数储存起来
arr(i)=arr(j)把大的数赋于前面的arr(i)
arr(j)=temp
end if
nextj
next i
这个时候你得到的数组就是一个从大到小的数组了。
温馨提示:答案为网友推荐,仅供参考