问题描述:将一个递增数组最开始若干个元素搬到数组的末尾,输出最小的元素
int findMinIndex(int a[],int start,int endindex)
{
int target = start;
for(int i=start+1;i<=endindex;i++)
{
if(a[i]<a[i-1])
{
target = i;
break;
}
}
return target;
}
int Min(int a[],int start,int endindex)
{
int midindex = start;
while(a[start]>=a[endindex])
{
if(endindex-start==1)
{
midindex = endindex;
break;
}
midindex = (start+endindex)/2;
if(a[start]==a[midindex] && a[midindex]==a[endindex])
{
midindex = findMinIndex(a,start,endindex);
break;
}
if(a[start]<=a[midindex]) start = midindex;
else if(a[midindex]<=a[endindex])endindex = midindex;
}
return a[midindex];
}