2014年4月14日

《算法导论》笔记 第9章 9.3最坏情况线性时间选择

摘要: 【笔记】SELECT最坏运行情况是线性的。【练习】9.3-1 在算法SELECT中,输入元素被分为每组5个元素。如果它们被分为每组7个元素,该算法会仍然以线性时间工作吗?证明如果分成每组3个元素,SELECT无法在线性时间内运行。考虑每组分为k个元素。则大于或小于中位数的中位数的数至少为因此在最坏情况下SELECT将处理最多n-(n/4-k)=3n/4+k个元素。递归式用代换法解决,假设算法是线性的,猜测有T(n)=4时成立。因此该算法对4个及4个以上的分组是线性的。当k=3时该算法的复杂度是Ω(nlgn)。9.3-2 分析SELECT,并证明如果n>=140,则至少有n/4个元素大于中 阅读全文

posted @ 2014-04-14 21:30 电子幼体 阅读(2048) 评论(0) 推荐(0) 编辑

《算法导论》笔记 第9章 9.2以期望线性时间做选择

摘要: 【笔记】在平均情况下,任何顺序统计(特别是中位数),都可以在线性时间内得到。int partition(int A[],int p,int r) { int x = A[r]; int i = p-1; for (int j=p;jp+1时,若q在边界处,即q=r或q=p,若答案在A[q]处,转到情景1。否则转到情景3或情景2。因此递归过程中不会出现长度为0的数组。9.2-2 证明:指示器随机变量Xk和T(max(k-1,n-k))是独立的。9.2-3 写出RANDOMIZED-SELECT的一个迭代版本。int NonRecursiveRandomizedSelect(in... 阅读全文

posted @ 2014-04-14 21:03 电子幼体 阅读(979) 评论(0) 推荐(0) 编辑

《算法导论》笔记 第9章 9.1最小值和最大值

摘要: 【笔记】对于确定最小值问题,可以得到n-1次比较的这一下界。同时找出最小值和最大值,至多3*(n/2)次比较足以。将输入成对比较,较小者与最小值比较,较大者与最大值比较,每个元素3次比较。【练习】9.1-1 证明:在最坏情况下,利用n+seil(lgn)-2次比较,即可找到n个元素中的第2小元素。对元素两两进行比较,找出最小值,共n-1次比较。此时形成一个二叉树,高度为logn,根为最小元素。则次小元素一定在最小元素上升过程中的比较值中。即logn-1个比较值,因此最坏情况用n+seil(lgn)-2次比较即可找到次小元素。*9.1-2 证明:在最坏情况下,同时找到n个数字中的最大值和最小值需 阅读全文

posted @ 2014-04-14 16:08 电子幼体 阅读(305) 评论(0) 推荐(0) 编辑

导航