随机散列的实现(VB2005)

前端之家收集整理的这篇文章主要介绍了随机散列的实现(VB2005)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

编写过程序的人都知道,随机散列是我们经常要实现的问题。

什么是随机散列?比方说,现在有一个数列1、2、3、4、5、6。我希望得到一个随机的打乱顺序的数列,例如:2,5,6,3,4,1。这个新的数列就是原数列的随机散列。

实际情况中,我们经常需要给定一个范围,就能得到一个随机散列。比方说:给定[2,7],通过运算得到一个散列:6,4,5,7,2,3。

下面是实现随机散列的一个函数,用的是VB2005编写的。

'函数名:GetRndList

'作用:获得一个随机散列

'参数MinValue:随机散列的下限

'参数MaxValue:随机散列的上限

'参数Count:随机散列的个数

Public Function GetRndList( _

ByVal MinValue As Integer,_

ByVal MaxValue As Integer,_

ByVal Count As Integer

) As Integer()

If Count <= 0 OrElse Count > MaxValue - MinValue + 1 Then Return Nothing

Dim mBase() As Integer,mList() As Integer

Dim i As Integer,j As Integer,mR As New Random

ReDim mBase(Count - 1)

ReDim mList(MaxValue - MinValue)

For i = 0 To MaxValue - MinValue

mList(i) = i + MinValue

Next

For i = MaxValue - MinValue To MaxValue - MinValue - Count + 1 Step -1

j = mR.Next(i + 1)

Call SwapNumber(mList(i),mList(j))

Next

For i = 0 To Count - 1

mBase(i) = mList(MaxValue - MinValue - i)

Next

Return mBase

End Function

猜你在找的VB相关文章