#include<iostream>
using namespace std;
int main()
{
int arr[] = {5,6,7,8,9,1,2,3,4};
int left = 0, right = 8;
cout<<"循环有序数组arr[]={";
for(int i = 0; i < 9; i++)
if(i != 8)
cout<<arr[i]<<",";
else
cout<<arr[i]<<"}"<<endl;
while(left <= right)
{
int mid = left + (right - left) >> 1;
if(arr[left] < arr[right])
{
cout<<"最小值为:"<<arr[left]<<endl;
return 0;
}
else
{
if(arr[left] > arr[mid])
{
right = mid - 1;
}
else if(arr[mid] > right)
{
left = mid + 1;
}
else
{
int minn = arr[left];
for(int i = left + 1; i < right ; i++)
if(arr[i] < minn)
{
minn = arr[i];
}
cout<<"最小值为:"<<minn<<endl;
return 0;
}
原文地址:https://blog.51cto.com/14472348/2474985