您好、欢迎来到现金彩票网!
当前位置:湖南福彩网 > 分割使用 >

算法:元素个数为2n的数组把数组分割为元素个数为n的两组并使这

发布时间:2019-09-20 13:27 来源:未知 编辑:admin

  算法:元素个数为2n的数组,把数组分割为元素个数为n的两个数组,并使这两个子数组的和最接近

  算法:元素个数为2n的数组,把数组分割为元素个数为n的两个数组,并使这两个子数组的和最接近

  例如有如下数组有10个元素,将其分成两个数组,每个数组有5个元素,且每个数组中的元素和最接近相等1、5、7、8、9、6、3、11、20、171、3、11、8、205、7、9、6、17书上说道:假设2n个...

  例如有如下数组有10个元素,将其分成两个数组,每个数组有5个元素,且每个数组中的元素和最接近相等

  书上说道:假设2n个整数之和为SUM。从2n个整数中找出n个元素的和,有三种可能:大于SUM/2,等于SUM/2和小于SUM/2。而这两种情况没有本质的区别。

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部因为对于这个问题来说,我们只需要找出集合S(2N, N)中与SUM/2最接近的那个和。令S(k, i)表示前k个元素中任意i个元素的和的集合。我们在这个过程中只需要关注和不大于SUM/2的那个子数组的和。所以集合中重复的和以及大于SUM/2的和都是没有意义的。

  那把大于SUM2和等于SUM2看成一组也行吧?因为只要个大致范围是吧?对的,是这样。把谁看成一组影响到后面的算法。如果选的是等于和小于,只需要从SUM2到1遍历一次,逐个询问这个值是不是在S(2N,N)中出现。反之需要从SUM2到SUM遍历一次,逐个询问这个值是不是在S(2N,N)中出现。

  展开全部先按大小排序,然后截取前四分之一和最后四分之一凑成新的数组。(代码手写的,没验证过,可能会有错误。另外排序完全可以使用Arrays.sort()来完成)classMyProgram{

http://hostalblau.com/fengeshiyong/571.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有