二位数组排序速度优化求教高手,谢谢!!!
二位数组排序优化求教高手,谢谢!!!
我下面的代码是进行排序的,但速度有点慢,还请高手指点一下:(代码也是从网上找到的)
DataCount=14或更多
UBound(dqsj, 1)大约有1500
Sub BubbleSort(Number As Integer, DataCount As Integer, SmallToBig As Boolean, ds As Integer)
Dim First As Long, Last As Long
Dim ii As Long, JJ As Long, KK As Long
'定义一个可以保存一维多数据的临时变量
Dim Temp() As String
First = LBound(dqsj, 1) '取得数组第1维上界
Last = UBound(dqsj, 1) '取得数组第1维下界——判断出来有多少数据
ReDim Temp(UBound(dqsj, 1) - ds, DataCount)
'II是负责循环数据个数[维数],JJ是内层循环
For ii = First To Last - 1 - ds '冒泡排序法
For JJ = ii + 1 To Last - ds - 1
If SmallToBig = True Then '从小到大
If Val(dqsj(ii, Number)) > Val(dqsj(JJ, Number)) Then
'记录第JJ个数据
For KK = 0 To DataCount - 1
Temp(ii, KK) = dqsj(JJ, KK)
Next
For KK = 0 To DataCount - 1
dqsj(JJ, KK) = dqsj(ii, KK)
Next
'恢复数据
For KK = 0 To DataCount - 1
dqsj(ii, KK) = Temp(ii, KK)
Next
End If
Else '从大到小
If Val(dqsj(ii, Number)) < Val(dqsj(JJ, Number)) Then
'记录第JJ个数据
For KK = 0 To DataCount - 1
Temp(ii, KK) = dqsj(JJ, KK)
Next
For KK = 0 To DataCount - 1
dqsj(JJ, KK) = dqsj(ii, KK)
Next
'恢复数据
For KK = 0 To DataCount - 1
dqsj(ii, KK) = Temp(ii, KK)
Next
End If
End If
Next
Next
Call drwtxt(hdqwzy(), hdqwzx())
End Sub