首页 > 其他 > 详细

旋转数组最大值

时间:2014-09-22 11:35:23      阅读:245      评论:0      收藏:0      [点我收藏+]

 排序好的数组:1,2,3,4,5,6,7,经过旋转操作后(比如,4,5,6,7,1,2,3)求最大值???

 

#include<iostream>
using namespace std;

/*---------_旋转后的数组找最大值------------
	1,2,3,4,5,6,7;
	5,6,7,1,2,3,4
	7,1,2,3,4,5,6
*/
void findmax(int *x,int N)
{
	if(!x||!N)	return;
	int i=0,j=N-1;
	while(i<j-2)	//_剩两个时停止    //在"5,6,7","6,7,1" 的情况时,剩下两个不好处理,放到后面单独解决
     { if(x[(i+j)/2]>=x[i])    //大于等于时(i+j)/2 参与下一次计算 i=(i+j)/2; else j=(i+j)/2-1;    //反之,(i+j)/2 不参与下一次计算 } cout<<(x[i]>x[j]?x[i]:x[j])<<endl;  //剩下的两个中最大的一个 } void main() { int x[7]={5,6,7,1,2,3,4}; findmax(x,7); }

 

旋转数组最大值

原文:http://www.cnblogs.com/shirishiyue/p/3985519.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!