12-13-01ADA09(减治法-减常因子算法I)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Decrease by a constant factor (usually by half)
• • • • Binary search Fake-coin problem Russian peasant multiplication Josephus problem
Variable-size decrease
2012-2013-01 《Design and Analysis of Algorithm》 SCUN
2012-12-27 13
Average-Case Analysis (cont.)
• So we can represent binary search as a binary tree:
2012-2013-01 《Design and Analysis of Algorithm》
2012-2013-01 《Design and Analysis of Algorithm》 SCUN
2012-12-27 8
Binary search example:Find the key value 14
0 1 2 3 4 5 6 7 8 9 10 11 12
3 14 27 31 39 42 55 70 74 81 85 93 98
2012-2013-01 《Design and Analysis of Algorithm》 SCUN
2012-12-27 12
Average-Case Analysis
Successful Search • If the search is always successful, there are n places (number of possible keys) the key could be found • We will consider each of these to be equivalent and so will give each a probability of 1/n • There is one place we check on the first pass, two places we could check on the second pass, and four places we could check on the third pass, and so on.
2012-2013-01 《Design and Analysis of Algorithm》
SCUN
2012-12-27
10
Best-case Analysis
The input instances in which the target matches the middle element will lead to the best case. This means only one comparison is done. So we get: Tbest (n) = Ω(1)
Combinatorial problem
• • Fake-coin problem (S5.5) Josephus problem (S5.5)
Binary Search (basic idea)
Used with a sorted list (the list is in increasing order)
2012-2013-01 《Design and Analysis of Algorithm》
SCUN
2012-12-27
3
Decrease-and-Conquer (basic idea)
1.
2. 3.
Reduce problem instance to smaller instance of the same problem Solve smaller instance Extend solution of smaller instance to obtain solution to original instance
low=0
27>14
mid=6 55>14 high=5
high=12
mid=2 high=1 mid=0
3<14
low=1 mid=1
14=14
SCUN
2012-12-27 9
2012-2013-01 《Design and Analysis of Algorithm》
The Binary Search Algorithm
2012-12-27 6
The Application of Decrease by a constant factor teHale Waihona Puke Baiduhnique
Search problem • The binary search (S4.3, P135-139)
Numerical problem
• Russian peasant multiplication (S5.5)
SCUN
2012-12-27
14
Average-Case Analysis (cont.)
• In looking at the binary tree, we see that there are i comparisons needed to find the elements that are in the nodes of level i • There are 2i-1 nodes on level i • For a list with n = 2k-1 elements, there are k levels in the binary tree • The above facts give us:
4
3 Types of Decrease and Conquer
Decrease by a constant (usually by 1)
• Insertion sort • Graph traversal algorithms (DFS and BFS) • Algorithms for generating permutations, subsets
Chapter 5
Decrease and Conquer (I)
Introduction to Decrease-and-Conquer Decrease-by-a-Constant-Factor Algorithms The Binary Search Fake-coin Problem Russian Peasant Multiplication Josephus Problem
Problem of size n
subproblem of size n/2
solution to the subproblem solution to the original problem
2012-2013-01 《Design and Analysis of Algorithm》
SCUN
2012-12-27
2012-2013-01 《Design and Analysis of Algorithm》
SCUN
2012-12-27
11
Worst-Case Analysis
In the worst case, we will either find the element on the last pass, or not find the element at all In each pass, only need 1 comparison. Hence, if we knew how many passes it has done, worst case is trivial If n = 2k-1, then there must be k = log(n+1) passes So, informally, we get: Tworst(n) = O(logn) If n is an arbitrary positive integer n, since after one pass, the algorithm faces the same situation but for an array half the size, we get the following recurrence relation for Tworst(n): Tworst(n) = Tworst ( n/2 ) + 1 n>1 Tworst(1) = 1 So, formally: Tworst(n) = logn + 1 = log(n+1) = O(logn)
n Brute Force: a n = a a a
Consider the problem of exponentiation: an
a a = n 2 n 2 a a
n
Divide and conquer:
Decrease by one:
n
n =1 n >1
a a = n -1 a a
n =1
n >1
a n =1 n2 2 Decrease by constant n a = (a ) n > 1 and is even factor: ( n - 1) 2 2 ´ ) a n> 1 and is odd ( a
2012-2013-01 《Design and Analysis of Algorithm》 SCUN
• Euclid’s algorithm • The kth smallest element find algorithm • Interpolation search
2012-2013-01 《Design and Analysis of Algorithm》 SCUN
2012-12-27 5
What’s the difference? (example)
k
[ r1 … … … rmid-1 ] rmid [ rmid+1 … … … rn ] (mid=(1+n)/2) k < rmid
k > rmid
First check the middle list element If the key matches the middle element, we are done
BinarySearchNR(A[0…n-1], K)
//Input: An array A sorted in ascending order and a search K //Output: An index of the array’s element that is equal to K or -1 if there is no such element
Goals of the Lecture
At the end of this lecture, you should
• Master the basic idea and all kinds of variations of decrease and conquer technique • Master the binary search algorithm and its best-case, worstcase and average-case analysis • Understand the fake coin problem and its solution • Be familiar with the Russian peasant multiplication method • Understand the josephus problem and its solution
l 0; r n-1 while l r do m (l+r)/2 if K = A[m] return m else if K < A[m] r m-1 else l m+1 return -1
Thinking: How to rewrite this algorithm in recursive format?
If the key is smaller than the middle element, the key must be in the first half If the key is larger than the middle element, the key must be in the second half