快速排序其他实现代码

  1. int hoare_partition( int a[], int low, int high)
  2. {
  3. int x=a[low];
  4. int i=low-1;
  5. int j=high+1;
  6. while (1)
  7. {
  8. do {j–;}
  9. while (a[j]>x);
  10. do {i++;}
  11. while (a[i]<x);
  12. if (i<j)
  13. swap(a[i],a[j]);
  14. else return j;
  15. }
  16. }
    1. void hoare_quicksort( int a[], int low, int high)
  17. {
  18. int q;
  19. if (low<high)
  20. {
  21. q=hoare_partition(a,low,high);
  22. hoare_quicksort(a,low,q);
  23. hoare_quicksort(a,q+1,high);
  24. }
  25. }
      1. int _tmain( int argc, _TCHAR* argv[])
  26. {
  27. int a[9]={45,32,1,5,34,2,4,32,2};
  28. hoare_quicksort(a,0,8);
  29. for ( int i = 0; i< 9; i++)
  30. cout << a[i]<< " " ;
  31. return 0;
  32. }