一个升序数组,前面一部分数组搬到了数组的后面,从中查找一个元素,返回下标,查找失败返回-1。
#include <stdio.h>
#include <stdlib.h>
int find(int a[],int start, int end, int x) {
int i=start;
int j=end-1;
while(i<j) {
if(x>a[i]) i++;
else if(x==a[i]) return i;
else if(x<a[j]) j--;
else if(x==a[j]) return j;
else return -1;
}
return -1;
}
int main()
{
int a[5]={4,5,1,2,3};
int i =find(a,0,5,2);
printf("%d\n",i);
return 0;
}
Email:clickyeah@yeah.net