這似乎是回答這個問題定義T'
大-θ「是否數組包括x?」。它遞歸地搜索數組的下半部分,然後遞歸地搜索數組的上半部分,直到它找到X或檢查了所有的索引,並且可以說它不在數組中。所以它是T(n)= 2T(n/2)+ 3,它是由主定理O(n)。既然你必須在最壞的情況下檢查所有的指數來說'是'或'否'。
考慮這樣的情況,其中x是不數組中(我們將只使用A [1] = I與10個索引0到9的陣列)
x = 10
i = 0, j = 9
0. C(0, 9, 10)
i != j
1. C(0,4,10)
i != j
2. C(0,2,10)
i != j
3. C(0,1,10)
i != j
4. C(0,0)
i == j
A[i] != 10: Return NO.
From 3. else:
5. C(1,1, 10)
i == j
A[i] != 10: Return NO
From 2. else:
6. C(2,2,10)
i == j
A[i] != 10: Return NO
From 1. else:
7. C(3,4,10)
i != j
8. C(3,3,10)
i == j
A[i] != 10: Return NO
From 7. else:
9. C(4,4,10)
i == j
A[i] != 10: Return NO
From 0. else:
10. C(5, 9, 10)
i != j
11. C(5, 7, 10)
i != j
12. C(5, 6, 10)
i != j
13. C(5, 5, 10)
i == j
A[i] != 10: Return NO
From 12. else:
14. C(6, 6, 10)
i == j
A[i] != 10: Return NO
From 11. else:
15. C(6, 7, 10)
i != j
16. C(6, 6, 10)
i == j
A[i] != 10: Return NO
From 15. else:
17. C(7, 7, 10)
i == j
A[i] != 10: Return NO
From 10. else:
18. C(8, 9, 10)
i != j
19. C(8, 8, 10)
i == j
A[i] != 10: Return NO
From 18. else:
20. C(9, 9, 10)
i == j
A[i] != 10: Return NO
10. Recieves No from all branches, returns No
0. Recieves No from all branches, returns No.
哪個捲起導致20遞歸調用,你可以看到算法必須檢查每個索引,說'10不在數組中'。