在有序旋转数组中找到最小值
程序员文章站
2022-06-08 18:29:27
...
//在有序旋转数组中找到最小值
public class GetArrMin{
//获得旋转数组中的最小值(利用二分查找的思想)
public static int getMin(int[]arr)
{
int low=0;
int high=arr.length-1;
int mid=0;
while(low<high)
{
if(low==high-1)
{
break;
}
if(arr[low]<arr[high])
{
return arr[low];
}
mid=(low+high)/2;
if(arr[low]>arr[mid])
{
high=mid;
continue;
}
if(arr[mid]>arr[high])
{
low=mid;
continue;
}
while(low<mid)
{
if(arr[low]==arr[mid])
{
low++;
}
else if(arr[low]<arr[mid])
{
return arr[low];
}else{
high=mid;
break;
}
}
}
return Math.min(arr[low],arr[high]);
}
public static void main(String[]args)
{
//System.out.println("Hello");
int[]test={4,4,5,1,2,3};
System.out.println(getMin(test));
}
}
上一篇: mysql 事宜的四种隔离级别