给定n个数,在最坏情况下用╔ 3n/2-2 ╕次比较找出这n个数中元素的最大值和最小值

[复制链接]
查看11 | 回复2 | 2010-11-22 08:53:09 | 显示全部楼层 |阅读模式
Input
包含多组测试数据。每组测试数据的第一个元素是整数的个数n,接下来是n个整数。0表示结束。 n<=200
Output
这n个数中的最大值和最小值。
Sample Input
5 1 8 2 4 3
3 2 4 1
0
Sample Output
8 1
4 1

回复

使用道具 举报

千问 | 2010-11-22 08:53:09 | 显示全部楼层
设置两个变量max和min,一个保存当前最大的,一个保存当前最小的。每次取两个,进行比较,大的和max比,小的和min比,直道结束。设总的数据量是n,则总的比较次数是3n/2 - 2
1.减2是对第一次2.每次取2个数,供需n/2次。每次比较3次,供需比较3*n/2次
回复

使用道具 举报

千问 | 2010-11-22 08:53:09 | 显示全部楼层
ACM吧,呵呵#include using namespace std; void MaxAndMin(int *a,int left,int right,int& max,int& min) {int num=right-left+1;if (num==1){ max=a[left];
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行