请教数组排序的问题!! 非常急啊~~~
我想对数组从小到大用冒泡法排序,写一个函数,然后再调用.. 
 我写的是:    
  <%Sub         popo(a(),e)    
             dim   i,n   ,keep    
          for   i         =         0      to   e-1       
          for   n         =         0      to      e-1-i          
                   If         a(n)> a(n+1)         then          
                         keep=a(n+1)          
                      a(n+1)         =   a(n)          
                         a(n)         =   keep          
                   end         If          
             next          
 	next       
       End         Sub         %>    
 请问这个函数有没有写错呢???   
 调用是: <%call   popo(va(),z)%>  
 数组va(),和元素个数z已经赋值了 
 但是出错了: 
  "陣列索引超出範圍 " 
------解决方案--------------------首先第一行就有问题 
  <%Sub   popo(a(),e)  
  <%Sub   popo(a,e)
------解决方案-------------------- <%function   popo(a(),e)  
     dim i,n ,keep  
    for i   =   0  to e-1   
    for n   =   0  to  e-1-i    
       If   a(n)> a(n+1)   then    
         keep=a(n+1)    
        a(n+1)   = a(n)    
         a(n)   = keep    
       end   If  
     popo=a() 
     next    
 	next   
   End   function   %>    
  '写成函数,不是过程 
------解决方案--------------------Sub popo(A()  ) 
     Dim i, n, keep 
    For i = LBound(A) + 1 To UBound(A)   '数组下限to上限 
         If A(i)  < A(i - 1) Then  '如果不符合从小到大的规则 
             n = i 
             Do While ChageValue(A(n), A(n - 1))     '把A(n)向上冒              
                 n = n - 1 
                 If n = LBound(A)  Then Exit Do    '如果达到数组第一个位置 exit do 
             Loop 
         End If            
      Next 
   End Sub   
  '这是一个比较并交换值的函数,如果X <Y,交换位置并返回真 
 Private Function ChageValue(x, y) 
     If x  < y Then 
         x = x + y 
         y = x - y 
         x = x - y 
         ChageValue = True 
     Else 
         ChageValue = False 
     End If 
 End Function
------解决方案--------------------楼主 你说了要写函数 怎么写过程了?
------解决方案--------------------for i   =   0  to e-1   
    for n   =   0  to  e-1-i    
  If   a(n)> a(n+1)   then 
 当i=0,n=e-1-i=e-1时 
 a(n+1)就是a(e)。显然你的数据最大下标是e-1
------解决方案-------------------- <script language= "vbscript ">  
 function popo(a) 
 	 '入口参数检查 
 	if not isArray(a) then 
 		popo=Array( "参数错误! ") 
 		exit function 
 	end if 
 	dim i,j,temp 
 	for i=0 to Ubound(a)-1 
 		for j=i+1 to Ubound(a) 
 			if a(i)> a(j) then 
 				temp=a(i) 
 				a(i)=a(j) 
 				a(j)=temp 
 			end if 
 		next 
 	next 
 	popo=a 
 end function   
  '测试 
 dim arr