剑指offer面试题8

旋转数组的最小数字

#include
#include


int find(int *arr,int sz)
{
int left=0;
int right=sz-1;
int mid=(left+right)/2;

while (arr[left]>=arr[right])
{
if (right-left==1)
{
mid=right;
break;
}

if (arr[mid]
{
right=mid;
}
else if (arr[mid]>arr[left])
{
left=mid;
}

mid=(left+right)/2;
}
return arr[mid];
}

int main()
{
int arr[]={4,5,6,7,1,2,3};
int sz=sizeof(arr)/sizeof(arr[0]);
int ret=0;

ret=find(arr,sz);

printf("%d\n",ret);

system("pause");

return 0;
}

你可能感兴趣的:(C语言)