码迷,mamicode.com
首页 > 其他好文 > 详细

旋转数组最大值

时间:2014-09-22 12:44:12      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:blog   io   os   div   sp   log   c   r   bs   

 排序好的数组: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); }

 

旋转数组最大值

标签:blog   io   os   div   sp   log   c   r   bs   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!