template<class T> void sSort(T *A, int first, int last)
{
if(A[first]>A[last])
swap(A[first],A[last]);
if(first+1>=last)
return;
double k = floor((last-first+1)/3);
sSort(A,first,last-k);
sSort(A,first+k,last);
sSort(A,first,last-k);
}
我完全理解mergeSort,bubbleSort的复杂性,但我在这一点上很困惑。这个算法的复杂性是多少?谁能解释一下?
答案 0 :(得分:10)
这是Stooge sort。它是一种算法,用于表明业余爱好者在没有首先正确分析它们的情况下真的不应该实现自己的算法。它的运行时间约为O(n ^ 3)。
答案 1 :(得分:2)
进行计算并不太难。