这个排序算法的复杂度是多少?
What is the complexity of this sorting algorithm?
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的复杂性,但我对这个很困惑。这个算法的复杂度是多少?有人能解释一下吗?
这是傻瓜排序。这个算法的构造是为了表明,业余爱好者不应该在没有正确分析之前实现自己的算法。它的运行时间大约是O(n^3)。
算算并不难。
- 每次算法调用3次,将当前步骤的输入部分分成3个(相等)部分。注:第一次呼叫和第三次呼叫相同。
- 局部复杂度只是O(1)(这意味着常数),因为它只会做交换,if和k的计算
相关文章:
- while循环中while循环的时间复杂度是多少
- 函数的时间复杂度是多少?
- C++中 std::map 的运行时复杂度是多少?
- 将树节点添加到向量向量中的 n 元树遍历的平均和最坏情况时间复杂度是多少?
- 此print_star函数的运行时复杂度是多少?
- 给定C++代码的时间复杂度是多少?
- 将数组的元素插入映射的时间复杂度是多少?
- 以下递归代码的时间复杂度是多少?
- C++ 中 std::map 的空间复杂度是多少?
- 在C++中修改字符串的BigO时间复杂度是多少
- 这个算法的运行时间复杂度是多少?你是如何分析的
- 此特定代码的时间复杂度是多少?
- % 运算符的时间复杂度C++是多少?
- 三和算法的时间复杂度是多少
- 以下代码片段的时间复杂度是多少?
- 用于搜索的给定代码的时间复杂度是多少
- 我的代码的空间复杂度是多少
- std::map的时间复杂度是多少
- 遍历二维数组的时间复杂度是多少
- 这个代码(来自leetcode)的时间复杂度是多少