代码之家  ›  专栏  ›  技术社区  ›  Ali Tarhini

如果您可以在7个比较中对5个数字进行排序,那么如何在10个比较中对6个数字进行排序?

  •  2
  • Ali Tarhini  · 技术社区  · 14 年前

    在7个比较中对5个数字排序还有一个问题:

    Sorting an array with minimal number of comparisons

    我的问题是在10个比较中对6个数字进行排序。

    3 回复  |  直到 8 年前
        1
  •  6
  •   Jon Skeet    14 年前

        2
  •  3
  •   Ilya Huchok    9 年前

    c1 -→ o  | 3/10 comparisons
    c2 -→ o
    o -→ o
    

    o -→ c1
    
    o -→ o -→ c2 | 4/10 comparisons
     ↘
       ↘o
    

    A)Worse(26/45 of all cases)  B)Better(19/45)   | 5/10 comparisons
    
    o -→ c1 -↘                             b-↘
               ↘                               ↘
      o -→ c2 -→ o                o -→ c1-→ c2-→ c3
       ↘                           ↘  
         ↘o                          ↘a
    

    A1)                       A2)                 | 6/10
           o↘                 c1-→ c2 -→ o -→ o
              ↘                        ↗
     o -→ c1-→ c2 -→ c3              a -→ b
      ↘
        ↘a
    

    A1.1)                     A1.2)               | 8/10
           a↘                            a↘
              ↘                             ↘
     c1-→ c2-→ o -→ o -→ o     c1-→ c2-→ c3-→ o -→ o 
    

        3
  •  1
  •   Steve314    14 年前