P
pn22
s1
S
n
pnkk
sk
精品课件
三、分治法的抽象控制策略
设: 原问题输入为a[n],简记为(1,n); 子问题输入为a[p]~a[q],1≤p≤q≤n,简记为(p,q)。
已知: SOLUTION; int divide (int, int); int small (int, int); SOLUTION conquer (int, int); SOLUTION combine (SOLUTION, SOLUTION);
精品课件
• 平均情况分
5
析
内部路径长度之
2
7
和:I
1
3
外部路径长度之
6
8
和:E, E=I+2n。
4
9
成功检索的平
均比较次数:
S(n)=(I/n)+1
不成功检索的平均比较次数: U(n)=E/(n+1) 由此可得:S(n)=(1+1/n)U(n)-1
因为:U(n)=O(log n),所以: S(n)=O(log n)
(k-1, a[0],…,a[k-2], x) a[k],…,a[n-1], x)
(1, a[k-1], x)
(n-k,
精品课件
三、递归算法
int BinSearch1(p, q, x) { int k=(p+q)/2;
if(q<p) return –1; /* 参数错误 */ if(x==a[k]) return k; if(x<a[k]) return BinSearch1(p, k-1, x); if(x>a[k]) return BinSearch1(k+1, q, x); }