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,可是不知道为什么时间复杂度好像不低啊
分析不了......菜鸟一个,呵呵,麻烦帮忙看一下
...全文
136 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
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

33,027

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧