QuickSort 快速排序 基於偽代碼實現


本文原創,轉載請注明地址 http://www.cnblogs.com/baokang/p/4737492.html

偽代碼

 1 quicksort(A, lo, hi)  2   if lo < hi  3     p = partition(A, lo, hi)  4     quicksort(A, lo, p - 1)  5     quicksort(A, p + 1, hi)  6 
 7 partition(A, lo, hi)  8     pivot = A[hi]  9     i = lo //place for swapping
10     for j = lo to hi - 1
11         if A[j] <= pivot 12  swap A[i] with A[j] 13             i = i + 1
14  swap A[i] with A[hi] 15     return i

 

Java實現

 

 1     public void quickSort(int[] a,int lo, int hi){  2         if(lo<hi){  3             int p=partition(a, lo, hi);  4             quickSort(a,lo,p-1);  5             quickSort(a, p+1, hi);  6  }  7  }  8     public int partition(int[] a,int lo, int hi){  9         int i,j,privot; 10         privot=a[hi]; 11         i=lo; 12         for(j=lo;j<=hi-1;j++){ 13             if(a[j]<privot){ 14  swap(a, i, j); 15                 i++; 16  } 17  } 18  swap(a,i,hi); 19         return i; 20  } 21     public void swap(int[] a,int lo,int hi){ 22         int s=a[lo]; 23         a[lo]=a[hi]; 24         a[hi]=s; 25     }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM