12-4.cpp

来自「为初学者提供的最佳的C++程序设计源程序库」· C++ 代码 · 共 57 行

CPP
57
字号
#include<iostream.h>
#include<iomanip.h>
#include<cstdlib>
template<class T>
inline void swap(T& v1,T& v2)
{
  T temp=v2;
  v2=v1;
  v1=temp;
}
template<class T>
void quicksort(T *array,int hi,int lo=0)
{
  while(hi>lo)
  {
    int i=lo;
    int j=hi;
    do
    {
      while(array[i]<array[lo]&&i<j)i++;
      while(array[--j]>array[lo])
		  ;
      if(i<j)
         swap(array[i],array[j]);
     }while(i<j);
     swap(array[lo],array[j]);
     if(j-lo>hi-(j+1))
     {
       quicksort(array,j-1,lo);
       lo=j+1;
      }
	 else
	 { quicksort(array,hi,j+1);
       hi=j-1;
   }
}
}
int main()
{
   int dim;
   cout<<"How many integers?"<<endl;
   cin>>dim;
   int *arrs=new int[dim+1];
   int i=0;
   for(;i<dim;i++)
   arrs[i]=rand();
   cout<<endl<<"..........unsorted................"<<endl;
   for(i=0;i<dim;i++)
   cout<<setw(8)<<arrs[i];
   quicksort(arrs,dim);
   cout<<endl<<"...........sorted................."<<endl;
   for(i=0;i<dim;i++)
   cout<<setw(8)<<arrs[i];
   delete arrs;
   return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?