您的位置:首页 > 其它

一个int 数组,里面数据无任何限制,要求求出所有这样的数a[i],其左边的数都小于等于它,右边的数都大于等于它。能否只用一个额外数组和少量其它空间实现。

2012-08-02 23:02 861 查看
一个int 数组,里面数据无任何限制,要求求出所有这样的数a[i],其左边的数都小于等于它,右边的数都大于等于它。能否只用一个额外数组和少量其它空间实现。

本文没有开辟新的空间,只是进行数据的交换,并且没有使用额外的数组。

对数组中的每一个数进行验证,以确定它是否符合左边都小于它,右边都大于它的。

void main()

{

int a[]={1,2,4,3,5,7,6,8};

int i,j,left,right;

int len= sizeof(a)/sizeof(int);

for(i = 1 ;i<len-1 ;i++)

{

left =1;

for(j = 0 ;j<i ;j++)

{

if(a[i]<=a[j])

{

left = 0;

}

}

right = 1;

for(j = i+1 ;j<len ;j++)

{

if(a[i]>=a[j])

{

right = 0;

}

}

if(left ==1 &&(right ==1))

{

cout<<a[i]<<endl;

}

}

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