1. 对一个整型数组A[n]设计一个排序算法。 2. 找出整型数组A[n]中元素的最大值和次最大值。

设计算法。用C++描述... 设计算法。用C++ 描述 展开
 我来答
yxfish11
2012-04-27
知道答主
回答量:33
采纳率:0%
帮助的人:30万
展开全部
首先c++algorithm库里面提供了sort函数支持排序。快排实现的。
直接sort就可以了。对于最大和次大是可以通过一边扫描实现的。记录两个指针。max1,max2。保留目前位置的次大和最大。然后扫描的时候更新就行了。但是如果排完序的话,最大和次大就是A[N]和A[N-1]
(ps:如果是严格次大的话还是需要再扫描一下,还是如果数据不是太大的话可以采用计数排序就是记录C[I]表示I这个数字出现几次,然后从小到大扫描下C数组就行了。看下I这个数出现几次就输出几次)
代码:(sort实现):

#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
const int Maxn=1000000;
static int n,m;
static int A[Maxn];
int main()
{
scanf("%d",&n);
for (int i=1;i<=n;i++)
scanf("%d",&A[i]);
sort(A+1,A+n+1);
printf("%d %d\n",A[n],A[n-1]);
return 0;
}
limiaaa2012
2012-04-27
知道答主
回答量:41
采纳率:0%
帮助的人:14.7万
展开全部
两个相邻元素比较 如果前者比后者大 则换位 否则不动 然后最后一个元素就是最大的 之后用倒数第二个元素和最后一个元素相比较 看是否相同 不同说明最大值只有一个 倒数第二个元素就是此最大的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Gwenz1
2012-04-27
知道答主
回答量:94
采纳率:0%
帮助的人:33万
展开全部
???
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式