您的位置:首页 > 职场人生

面试题8:旋转数组的最小数字

2016-01-11 14:08 495 查看
算法思想:参考二分查找

public class Demo8 {
public int min(int[] array) throws Exception{
if(array == null)
{
throw new Exception("invalid");
}
int index1=0;
int index2=array.length-1;
int mid=index1;
while(array[index1] >= array[index2])
{
if(index2-index1 == 1)
{
mid=index2;
break;
}
mid=(index1+index2)/2;
if(array[mid] >= array[index1])
{
index1=mid;
}
else if(array[mid] <= array[index2])
{
index2=mid;
}
}
return array[mid];
}

public static void main(String[] args) throws Exception {
int arr[]=new int[]{6,7,8,2,3,4,5};
Demo8 demo=new Demo8();
int min=demo.min(arr);
System.out.println(min);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: