示例:A[8] = {4,5,6,7,8,9,1,2,3} 查找某个数字是否在数组当中,也可以二分查找。如下:
// test50.cpp : Defines the entry point for the console application.//#include "stdafx.h"#includeusing namespace std;int find(int A[] , int left , int right , int pivot){ if(left > right) return -1; if(left == right && A[left] == pivot) return left; int mid = (left + right)/2; if(A[mid] == pivot) return mid; else if(A[mid] < pivot) //pivot 比 A[mid]大 { if(A[mid] > A[left]) //max 在mid的右边 { return find(A , mid + 1 , right , pivot); } else // max 在 mid 的左边 { if(pivot > A[right]) return find(A,left, mid - 1 , pivot); else return find(A,mid + 1 , right ,pivot); } } else //pivot 比 A[mid] 小 { if(A[mid] > A[left]) //min 在 mid的右边 { if(pivot < A[left]) // return find(A,mid + 1 , right , pivot); else return find(A,left, mid - 1 ,pivot); } else //min 在 mid 左边 { //min 在mid的左边 return find(A,left ,mid - 1 , pivot); } }}int main(int argc, char* argv[]){ int A[9] = { 4,5,6,7,8,9,1,2,3}; int pos = find(A,0 , 8 , 3); cout< <