已知数值数组ary()求一段代码对ary()从小到大排序,
然后输出为paixu()
我很菜,从网上看了很多排序代码,没明白
特跑到贵地来请大家赐教啊
这里何尝不是"网上", 没明白就继续研究呀
'Clng() should be remove for normal use
'Quick Sort ASP CODE:
Sub SortRun(ByRef pData,pLeft,pRight)
Dim i,j,middle,iTemp
i = pLeft
j = pRight
middle = Clng(pData((pLeft+pRight)/2)) '求中间值
While i <= j
While (Clng(pData(i))<middle) AND (i<pRight)'从左扫描大于中值的数
i = i + 1
Wend
While (Clng(pData(j))>middle) AND (j>pLeft)'从右扫描大于中值的数
j = j - 1
Wend
If i<=j Then'找到了一对值
'交换
iTemp = Clng(pData(i))
pData(i) = Clng(pData(j))
pData(j) = iTemp
i = i + 1
j = j - 1
End If
Wend'如果两边扫描的下标交错,就停止(完成一次)
'当左边部分有值(pLeft<j),递归左半边
If pLeft<j Then
Call SortRun(pData,pLeft,j)
End If
'当右边部分有值(pRight>i),递归右半边
If pRight>i Then
Call SortRun(pData,i,pRight)
End If
End Sub
Sub QuickSort(ByRef pData)'快速排序
Call SortRun(pData,0,ubound(pData))
End Sub
[此贴子已经被作者于2005-8-14 23:28:14编辑过]
VB, Delphi, ASP, PHP, JSP, .NET
MS SQL, My SQL, Oracle
Diablo, StarCraft, WarCraft, World of Warcraft