二分查找--循环数组找最小值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二分查找--循环数组找最小值相关的知识,希望对你有一定的参考价值。
#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;
}
以上是关于二分查找--循环数组找最小值的主要内容,如果未能解决你的问题,请参考以下文章