PrivateSubrank(nAsInteger,a()AsLong)Fori=1Ton-1Forj=i1TonIfa(j)>a(i)Thent=a(i):a(i)=a(j):a(j)=tNextjNextiEndSubvoidrank1(inta[],intn){inti,j,t;for(i=0;ia[i]){t=a[i];a[i]=a[j];a[j]=t;}};};}优化后的程序:PrivateSubrank(nAsInteger,a()AsLong)Fori=1Ton-1tmax=iForj=i1TonIfa(j)>a(tmax)Thentmax=jNextjIftmaxa[tmax])tmax=j;if(tmax!=i){t=a[i];a[i]=a[tmax];a[tmax]=t;}};}