文昌各个吧 关注:134贴子:15,618
  • 10回复贴,共1

【算法】寻求最大数

只看楼主收藏回复

今给定一个数组:寻求里面的最大数,这个最大数必须是由数组中另外两个数相加得到。
比如给定:1,2,3,4.则最大数为4,因为4=1+3
给定1,2,3,6则最大数为3,因为3=1+2,6不行所以不是最大数。
请给出算法和时间复杂度。


1楼2011-10-13 12:31回复
    首先进行排序,可以用合并交换排序法完成,时间复杂度为O(nlogn)
    下一步就是从有序的数组中寻找,最简单的就是一一比较,取最大和次最大相减,看看有没有存在数组中,以此一个个相减,知道找到为止。时间复杂度为O(n^3).显然这个时间太长了。好一点的是O(n^2).大家看看有没有更好的算法。


    2楼2011-10-13 12:45
    回复
      2026-04-01 11:17:47
      广告
      不感兴趣
      开通SVIP免广告
      我只能,泪奔……


      来自手机贴吧3楼2011-10-13 15:08
      回复
        术业有专攻哦,亲。


        IP属地:上海4楼2011-10-14 17:26
        回复
          我只有呼唤@蜀山无影剑 来解答了。


          IP属地:上海5楼2011-10-14 17:47
          回复
            那就没有最大数


            IP属地:上海来自掌上百度7楼2011-10-18 10:38
            回复
              研究研究


              IP属地:湖北来自手机贴吧9楼2011-10-20 22:00
              回复
                呃,现在我连中学的数学都忘了……
                同泪奔


                10楼2011-10-20 23:48
                回复
                  2026-04-01 11:11:47
                  广告
                  不感兴趣
                  开通SVIP免广告
                  这是正确的,但时间复杂度是O(n^3).


                  IP属地:上海11楼2011-10-21 12:19
                  回复
                    好好研究,写份报告。


                    IP属地:上海12楼2011-10-21 12:20
                    回复
                      我小学的数学知识都忘了。比如最小的个位数是1还是0呢。


                      IP属地:上海13楼2011-10-21 12:20
                      回复