快速排序,歸并排序,兩種基于分治策略的排序算法.
/////////////////////快速排序,時間復(fù)雜度為O(nlog2n)///////////////////////template<class T>
int Partion(T a[],int i,int j)//劃分函數(shù)
{
T temp;
temp=a[i];
while(i<j)
{
while(i<j && temp<=a[j])
j--;
if(i<j)
{
a[i]=a[j];
i++;
}
while(i<j && a[i]<=temp)
i++;
if(i<j)
{
a[j]=a[i];
j--;
}
}
a[i]=temp;
return i;
}
template <class T>
void qsort(T a[],int l,int h)
{
int m;
if(l<h)
{
m=Partion(a,l,h);
qsort(a,l,m-1);
qsort(a,m+1,h);
}
}
template<class T>
void SortWizard<T>::QuickSort()
{
qsort(a,0,n-1);
}
/**/////////////////////QuickSort_O(nlog2n)////////////////////////


























































posted on 2010-05-18 20:13 abilitytao 閱讀(357) 評論(0) 編輯 收藏 引用