• 全部
  • 问答

quicksort 不知道为什么达不到效果啊,超时......

eks_222 2008-11-30 08:36:31
void quickSort(string *a, int left, int right)
{
if(left>=right)
return;
int i = left - 1;
string b = a[right];
for(int j=left; j<right; j++)
{
if(a[j]<b)
{
i++;
string c = a[j];
a[j] = a[i];
a[i] = c;
}
}
a[right]= a[i+1];
a[i+1] = b;

quickSort( a, left, i);
quickSort( a, i+2, right);
return;
}

这是我照着伪代码写的quicksort,可是不知道为什么时间复杂度好像不低啊
分析不了......菜鸟一个,呵呵,麻烦帮忙看一下
...全文
112 点赞 收藏 2
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
NaWait 2008-12-01
best case of quick sort:
Q(n) = 2Q(n/2) + n/2 if n>=2
Q(n) = 1 if n<=1

當n = k 時

Q(k) = 2(2(2( ...... )+k/8)+k/4)+ k/2

= (logk) * (k/2)

= O(klogk)

worst case of quick sort:
Q(n) = Q(n-1) + (n-1) if n>=2
Q(n) = 1 if n<=1

當n = k 時

Q(k) = (k-1)+(k-2)+....+1 = O(n^2)


回复
qap22 2008-11-30
不懂,up
回复
相关推荐
发帖
数据结构与算法
创建于2007-08-27

3.2w+

社区成员

数据结构与算法相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2008-11-30 08:36
社区公告
暂无公告