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