VB编程怎么排序

我有5个不同的数字,怎么用VB语言实现从小到大的排序呢?比如:3、15、1、30、30,怎么用VB语言实现排序结果:1、3、15、30、30;另外如果两数字相同,则算一个,怎么实现排序后结果:1、3、15、30;请教大虾,thanks

  冒泡排序法思路:(假设有10个数,需要从小到大排)
Dim a(10)
Randomize
For i = 1 To 10
a(i) = Int(Rnd * i + 3 + Rnd * 10) '给数组赋值
Print a(i);
Next i
Print

For i = 1 To 10 ‘
For j = i + 1 To 10
If a(j) < a(i) Then ’如果剩余的比a(i)小的话,就交换
t = a(j)
a(j) = a(i)
a(i) = t
End If
Next j
Next i

For k = 1 To 10
Print a(k); ‘打印排好的数
Next k
Print
  、

  冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法
  它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
  这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-17
冒泡排序法思路:(假设有10个数,需要从小到大排)
Dim a(10)
Randomize
For i = 1 To 10
a(i) = Int(Rnd * i + 3 + Rnd * 10) '给数组赋值
Print a(i);
Next i
Print

For i = 1 To 10 ‘
For j = i + 1 To 10
If a(j) < a(i) Then ’如果剩余的比a(i)小的话,就交换
t = a(j)
a(j) = a(i)
a(i) = t
End If
Next j
Next i

For k = 1 To 10
Print a(k); ‘打印排好的数
Next k
Print

为了消除排序后的重复数据,你可以在得到数组之后,就对他进行删除,这样还能减少 冒泡排序中占用的时间追问

好复杂,请问下Randomize是什么语句?
Int(Rnd * i + 3 + Rnd * 10)括号中的什么意思呢?
谢谢

追答

这个?是产生随机数啊

Randomize 语句初始化随机数生成器。

语法

Randomize [number]

可选的 number 参数是 Variant 或任何有效的数值表达式。

说明

Randomize 用 number 将 Rnd 函数的随机数生成器初始化,该随机数生成器给 number 一个新的种子值。如果省略 number,则用系统计时器返回的值作为新的种子值。

如果没有使用 Randomize,则(无参数的)Rnd 函数使用第一次调用 Rnd 函数的种子值。

注意 若想得到重复的随机数序列,在使用具有数值参数的 Randomize 之前直接调用具有负参数值的 Rnd。使用具有同样 number 值的 Randomize 是不会得到重复的随机数序列的。

本回答被提问者采纳
相似回答