次のコードを試して、循環ソート配列の最小要素を見つけました。しかし、低 = 1 で高 =2 の場合は失敗します。これは、中が常に 1 であり、a[中]=a[1] が常に a[高] よりも大きいためです。
ここでバイナリ検索を使用して解決策を見つけようとしています。
//finding the minim element in the cyclic sorted array
int arrC[]={10,13,1,3,4,5,8};
int low=0,high =6;
int mid=0,reset =1;
while (low < high)
{
mid = (low+ high)/2;
if (arrC[mid]>arrC[high])
{
low = mid;
}
else if (arrC[mid] < arrC[high])
{
high = mid;
}
}
printf("minimum element is %d",arrC[mid+1]);