魔术索引

来源:互联网 发布:java进阶书籍pdf 编辑:程序博客网 时间:2024/04/28 16:52
package com.NodePair;


public class MagicIndex {
public static int MagicIndex(int[] array,int start,int end)
{
 if(end<start||start<0||end>=array.length)
return -1;
int mid=(start+end)/2;
int midvalue=array[mid];
if(midvalue==mid)
return mid;


int leftindex=Math.min(mid-1,midvalue);
int left=MagicIndex(array,start,leftindex);
if(left>=0)
return left;


int rightindex=Math.max(midvalue,mid+1);
int right=MagicIndex(array,rightindex,end);
if(right>=0)
return right;
}


public static int magicIndex(int[] array)
{
return MagicIndex(array,0,array.length-1);
}
}

0 0
原创粉丝点击