8_74.cpp
上传用户:zipjojo
上传日期:2009-07-20
资源大小:70k
文件大小:1k
源码类别:

文章/文档

开发平台:

C/C++

  1. #include<iostream.h>
  2. #include<iomanip.h>
  3. template<class T>
  4. void QuickSort(T*const array,int low,int high)
  5. {     //递归实现
  6. int i=low,j=high;
  7. T temp=array[low];   //取第一个对象为进行调整的标准对象
  8. while(i<j)
  9. {
  10. //在数组的右端扫描
  11. while(i<j && temp<=array[j]) j--;
  12. if(i<j)
  13. {
  14. array[i]=array[j];
  15. i++;
  16. }
  17. //在数组的左端扫描
  18. while(i<j&& array[i]<temp) i++;
  19. if(i<j)
  20. {
  21. array[j]=array[i];
  22. j--;
  23. }
  24. }
  25. array[i]=temp;
  26. //对子对象数组进行递归快速排序
  27. if(low<i) QuickSort(array,low,i-1);
  28. if(i<high) QuickSort(array,j+1,high);
  29. }
  30. void main()
  31. {
  32. const int size=10;
  33. int a[10]={10,9,8,7,6,5,4,3,2,1},i;
  34. cout<<"The original order of a:"<<endl;
  35. for(i=0;i<size;i++)
  36. cout<<setw(4)<<a[i];
  37. QuickSort(a,0,size-1);
  38. cout<<endl<<"The sorted order of a:"<<endl;
  39. for(i=0;i<size;i++)
  40. cout<<setw(4)<<a[i];
  41. cout<<endl;
  42. char b[10]={'s','T','e','Y','a','A','o','E','c','R'};
  43. cout<<"The original order of b:"<<endl;
  44. for(i=0;i<size;i++)
  45. cout<<setw(4)<<b[i];
  46. QuickSort(b,0,size-1);
  47. cout<<endl<<"The sorted order of b:"<<endl;
  48. for(i=0;i<size;i++)
  49. cout<<setw(4)<<b[i];
  50. cout<<endl;
  51. }