选择数组中最大或者最小的两个数

原创 2012年05月16日 23:18:48
	public int[] maxcost()
	{   
		int [] maxnum=new int[2];              //长度2的数组保存最大和次大数的索引
		int maxcost1,maxcost2;                //分别保存最大和次大的数
		if(group_cost[0]>=group_cost[1])      //先将数组前两个数比较大小后赋值给maxcost
		{
			maxcost1=group_cost[0];
			maxcost2=group_cost[1];
			maxnum[0]=0;
			maxnum[1]=1;
		}
		else
		{
			maxcost1=group_cost[1];
			maxcost2=group_cost[0];
			maxnum[0]=1;
			maxnum[1]=0;
		}
		for(int i=2;i<M;i++)                  //从第三个数开始遍历
		{
			if(maxcost1<group_cost[i])        //若比当前最大的大则替换,并且将次大的数替换
			{
				maxcost2=maxcost1;
				maxnum[1]=maxnum[0];
				maxcost1=group_cost[i];
				maxnum[0]=i;
			}
			else if(maxcost2<group_cost[i])   //如果没有最大的大,但是比次大的大,则将次大数替换
			{
				maxcost2=group_cost[i];
				maxnum[1]=i;           
			}
		}
		return maxnum;
	}
//只需遍历一次。新人一枚,如果还有更优的算法,还望博友不吝赐教



                    

相关文章推荐

找出一堆数据中最大或者最小的K个数

RT: 找出最大的K个数方法是建立一个有K个数的最小堆。 #include #include #include using namespace std; typedef mul...

在一个数组中查找最大的K个元素或者最小的K个元素

面试中经常会遇到查找最大的K个元素或者最小的K个元素的问题。如果是查找最大的K个元素,就用小根堆,如果当前元素比堆的根都元素大,那么一定要放到堆里来,用当前元素替换根元素(因为根的元素是最小的),然后...
  • doc_sgl
  • doc_sgl
  • 2013年04月27日 11:30
  • 1123

数组中最大的数

  • 2012年11月11日 17:06
  • 390B
  • 下载

有n枚硬币按照0到n-1对它们进行编号,其中编号为i的硬币面额为vi,两个人轮流从剩下硬币中取出一枚硬币归自己所有,但每次取硬币的时候只能取剩下的硬币中编号最小的硬币或者编号最大的硬币,在两个都采用最

#include #include #define N 100 int v[N]; int maxValue[N][N]; int select[N][N]; int MaxVa...

找出两个或者多个字符串中最大的公共串,最大的整数,最长的整数

一 找出两个字符串中最大的公共字串 #include "stdio.h" #include "malloc.h" #include "string.h" ...

已知元素从小到大排列的两个数组x[]和y[],请写出一个程序算出两个数组彼此之间差的绝对值中最小的一个,这叫做数组的距离

/* * Copyright (c) 2014, 烟台大学计算机学院 * All rights reserved. * 作 者:王颖 * 完成日期:2014 年 2 月 16 日 * 版 本 号...

取两个字符窜中最大的一个

  • 2008年09月18日 13:33
  • 281B
  • 下载

将一个5*5的矩阵中最大的元素放在中心,4个角分别放在4个最小的元素

/* * Copyright (c) 2012, 烟台大学计算机学院 * All rights reserved. * 作 者: 刘同宾 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:选择数组中最大或者最小的两个数
举报原因:
原因补充:

(最多只允许输入30个字)