两个Array的方法,求高手指点修正

wnttmk 2008-01-18 03:03:56
'删除数组中的重复项
'arrayList 数组
'返回值 Array
Public Function RemoveRepeat(ByVal arrayList)
Dim intI,intJ,intK,NewArray
ReDim NewArray(0)
NewArray(0) = arrayList(0)
For inti = 1 To Ubound(arrayList)
intK = 0
For intJ = 0 To Ubound(NewArray)
intK = intK + 1
if arrayList(inti) = NewArray(intJ) Then Exit For
Next
if intK = intJ Then NewArray = Me.Append(NewArray,arrayList(inti)) '方法,在数组后面追加一个新的元素
Next
RemoveRepeat = NewArray
End Function

'对数组进行排序,冒泡排序法
'ASC字符排序法则,即计算字符串中的第一个字符的ASC码
'ArrayList 数组
'isAsc 是否为升序排列
'返回值 Array
Public Function Sort(ByVal ArrayList,ByVal isAsc)
Dim intI,intJ,NewArray,CacheArray,CacheTemp,ArrTemp,intCount
ReDim CacheArray(Ubound(ArrayList))
NewArray = ArrayList
intCount = Ubound(NewArray)
For intI = 0 To intCount
CacheArray(intI) = Asc(NewArray(intI))
Next
If IsAsc Then
For intI=0 To intCount
For intJ = intCount - 1 To intI Step -1
If CacheArray(intJ) > CacheArray(intJ + 1) Then
CacheTemp = CacheArray(intJ)
CacheArray(intJ) = CacheArray(intJ + 1)
CacheArray(intJ + 1) = CacheTemp

ArrTemp = NewArray(intJ)
NewArray(intJ) = NewArray(intJ + 1)
NewArray(intJ + 1) = ArrTemp
End If
Next
Next
Else
For intI=0 To intCount
For intJ = intCount - 1 To intI Step -1
If CacheArray(intJ) < CacheArray(intJ + 1) Then
CacheTemp = CacheArray(intJ)
CacheArray(intJ) = CacheArray(intJ + 1)
CacheArray(intJ + 1) = CacheTemp

ArrTemp = NewArray(intJ)
NewArray(intJ) = NewArray(intJ + 1)
NewArray(intJ + 1) = ArrTemp
End If
Next
Next
End if
Sort = NewArray
End Function

我认为这两个方法都可以再简化.只是实在想不出.请高手指点!!
...全文
83 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
gingerkang 2008-01-18
  • 打赏
  • 举报
回复
占楼学习

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧