有一个长度为n 的 int 型升序数组A[n]。请编写一个函数来查找数组中值为k的元素第一次出现的数组下标。如果没有找到,返回-1。函数原型为:int search(int A[], int n, int k)

例如: 若 A[ ] = {1,2,3,4,5,5,6},k=2,则函数返回 1;

若 A[ ] = {1,2,3,4,5,5,6},k=5,则函数返回 4;

若 A[ ] = {1,2,3,4,5,5,6},k=666,则函数返回-1;

int search(int A[], int n, int k){
	int l=0,r=n-1;
	int index=-1;
	while(l<=r){
		int mid=(l+r)/2;
		if(A[mid]==k){	//查找成功
			index=mid;
			r=mid-1;   //向左收缩     如果要找k最后一次出现的位置 l=mid+1 向右收缩
		}else if(A[mid]<k) 
			l=mid+1;
		else if(A[mid]>k)
			r=mid-1;
	}
	return index;
}