请教ASP数组排序的问题,先谢谢大家咯~
											已知数值数组ary()求一段代码对ary()从小到大排序,然后输出为paixu()
我很菜,从网上看了很多排序代码,没明白
特跑到贵地来请大家赐教啊


 
										
					
	

 
										
					
	 2005-08-14 23:11
	    2005-08-14 23:11
   '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
'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编辑过]

 2005-08-14 23:24
	    2005-08-14 23:24
   2005-08-15 08:59
	    2005-08-15 08:59
  [此贴子已经被作者于2005-8-15 15:32:35编辑过]
 2005-08-15 15:28
	    2005-08-15 15:28
   2005-08-15 19:40
	    2005-08-15 19:40
  
 2005-08-15 22:14
	    2005-08-15 22:14
   2005-08-16 17:24
	    2005-08-16 17:24