快速排序最坏情况下lgn的空间复杂度
2010-01-25 11:12
225 查看
《算法导论》上提到的:
void quick_sort4(int *A,int l,int r)
{
while (l<r)
{
int m=partition3(A,l,r);
if (m<=(r-l+1)/2)
{
quick_sort4(A,l,m);
l=m+1;
}
else
{
quick_sort4(A,m+1,r);
r=m;
}
}
}
也就是说,每次只递归最小的那个数组,则可以将快速排序的空间复杂度控制在O(lgn)
这个怎么理解,怎么证明空间复杂度控制在了O(lgn)呀?
void quick_sort4(int *A,int l,int r)
{
while (l<r)
{
int m=partition3(A,l,r);
if (m<=(r-l+1)/2)
{
quick_sort4(A,l,m);
l=m+1;
}
else
{
quick_sort4(A,m+1,r);
r=m;
}
}
}
也就是说,每次只递归最小的那个数组,则可以将快速排序的空间复杂度控制在O(lgn)
这个怎么理解,怎么证明空间复杂度控制在了O(lgn)呀?
相关文章推荐
- 算法的时间复杂度和空间负责度、最坏情况和平均情况
- 最坏情况下保证时间复杂度为N*logN的快速排序
- n个数,找出其中最小的k个数,写出代码,要求最坏情况下的时间复杂度不能高于O(n logk)
- 在最坏情况下,找到n个元素中第二小的元素需要n+lgn-2次比较
- 关于快速排序和插入排序最坏时间复杂度为O(nlogn)的算法
- 【算法面试】n个数,找出其中最小的k个数,写出代码,要求最坏情况下的时间复杂度不能高于O(nlogk)
- 归并排序的空间复杂度为什么是O(n)?快速排序的空间复杂度为什么是O(log2n)?
- 转:算法的最坏情况与平均情况 复杂度就要看最坏情况
- 快速排序最坏的情况啥时候出现?
- 最坏情况下,找到n个元素中第二小的元素需要(n-1)+(lgn向上取整+1)
- 时间空间复杂度 冒泡 选择 快速排序
- 一个数组中,存在两个只出现一次的数字,其余的数字均出现两次。要求在时间复杂度o(n),空间复杂度为o(1)的情况下找出这两个数字
- 排序算法之 快速排序 及其时间复杂度和空间复杂度
- 几种排序在最坏和最好情况下的时间复杂度
- oralce 查看表空间使用情况
- 简单统计SQLSERVER用户数据表大小(包括记录总数和空间占用情况)
- 排序算法的时间复杂度和空间复杂度
- Android获取手机/SD卡内存空间使用情况
- 算法的时间复杂度和空间复杂度
- 各种排序算法比较(2):时间复杂度,空间复杂度