随机散列的实现(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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |