查找

一.二分查找

 

 1 #include<iostream>
 2 using namespace std;
 3 
 4 template <typename T>
 5 int BinarySearch(T A[], int start, int end, T k)
 6 {
 7     if (A == NULL || start < 0 || end < 0 || start > end)
 8     {
 9         return -1;
10     }
11     
12     int mid = (start + end) / 2;
13     if (A[mid] == k)
14     {
15         return mid;
16     }
17     else if (A[mid] > k)
18     {
19         return BinarySearch(A, start, mid - 1, k);
20     }
21     else
22     {
23         return BinarySearch(A, mid + 1, end, k);
24     }
25 }
26 
27 int main()
28 {
29     double A[] = { -10, -2.1, 1.1, 2.6, 3, 3, 4, 6};
30     cout << BinarySearch(A, 0, 7, 6.0); // 7
31 
32     cout << endl;
33     return 0;
34 }

 

posted @ 2016-03-14 15:44  早杰  阅读(155)  评论(0编辑  收藏  举报