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

原创 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;
	}
//只需遍历一次。新人一枚,如果还有更优的算法,还望博友不吝赐教



                

利用分治法求一组数据中最大的两个数和最小的两个数

利用分治法求一组数据中最大的两个数和最小的两个数。 #define M 10 #include int a[]={3,6,0,7,8,20,16,24,10,18}; void maxtwo(...
  • ygzk123
  • ygzk123
  • 2012年06月25日 22:37
  • 2802

算法题:求数组中最小的k个数

题目:输入n个整数,找出其中最小的k个数。 《剑指offer》给出了两种实现算法: 算法1:采用Partition加递归法,该算法可以说是快速排序和二分查找的有机结合。...
  • JXH_123
  • JXH_123
  • 2014年08月06日 21:15
  • 1550

从数组中找出最大的前两个数

#include void select(int* data,int data_size,int &Max,int &secondMax){ //Max=data[0]; //secondMa...
  • yyywww666
  • yyywww666
  • 2017年04月24日 20:50
  • 1084

从给定数组中找出最大的两个数——二分递归

分析1:对于给定数组找出其中最大的两个数,很容易想到的就是遍历数组。首先遍历整个数组,找出最大的一个元素并记录下该位置;然后分别遍历该位置之前的区间和该位置之后的区间,分别找出这两个子区间的最大值,然...
  • zjwson
  • zjwson
  • 2017年05月19日 09:19
  • 448

求无序数组之中最小的k个数

在无序数组中国找最小的k个数,一般有以下几种办法:   1.比较排序,然后找最小的k个数,时间复杂度下界为O(nlogn)   2.计数排序,时间复杂度可以做到O(n),但是要看具体的数据情况。也...
  • qq_26010491
  • qq_26010491
  • 2016年01月29日 15:56
  • 873

(动态规划DP)面试题:求数组中两个数的最大差值(只能下标大的减去下标小的)符合无后效性

//求数组元素与其右边元素做差,差值的最大值时间o(n)空间O(n) void sovle_maxSub_Dp(int *a, int n){ int *S=new int[n](); int m...
  • zx84289061
  • zx84289061
  • 2013年09月18日 01:42
  • 5250

同时寻找最大数和最小数的最优算法以及寻找最大的两个数所需的最少比较次数

同时寻找最大数和最小数的最优算法以及寻找最大的两个数所需的最少比较次数...
  • nyist327
  • nyist327
  • 2014年09月26日 00:01
  • 2790

动态规划经典问题03:数组中最大的数对差(或最小的数对差)

数组中最大的数对(或最小的数对)
  • BrilliantEagle
  • BrilliantEagle
  • 2014年09月07日 10:53
  • 1508

一道经典的面试题:如何从N个数中选出最大(小)的n个数?

一道经典的面试题:如何从N个数中选出最大(小)的n个数?北京交大LuoBin这个问题我前前后后考虑了有快一年了,也和不少人讨论过。据我得到的消息,Google和微软都面过这道题。这道题可能很多人都听说...
  • fisher_jiang
  • fisher_jiang
  • 2008年05月23日 15:34
  • 5794

动态规划系列---求数组中两个元素差的最大值

题目 求数组中两个元素差的最大值(后面的元素减去前面的元素);对应实际生活中的股票买卖,找出可能的最大收益;思路 类似于求数组连续和的最大值; 保存最大差值和最小值,遍历数组,如果当前元素-mi...
  • bh_xiaoxinba
  • bh_xiaoxinba
  • 2016年11月15日 21:55
  • 953
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:选择数组中最大或者最小的两个数
举报原因:
原因补充:

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