【问题标题】:Sort highest to lowest without built in [closed]没有内置的从高到低排序[关闭]
【发布时间】:2017-09-20 18:49:18
【问题描述】:

在没有内置函数的情况下,如何编写一个从高到低排序的排序函数?

例如:

A=[2,4,6]
sorthightolow(A)
A=[6,4,2]

【问题讨论】:

  • 为什么没有内置??
  • 如果你的老板要求你不要使用内置插件,你应该辞职。如果老师/教授要求您不要使用内置插件,您应该自己做 - 或者至少提供一些代码并告诉我们您卡在哪里。
  • 发布到codegolf.stackexchange.com - 这是“codegolf”的正确位置:D
  • 搜索冒泡排序等排序技术。
  • 一般来说,实现一个排序算法。有很多选择,包括如上所示的冒泡排序。您可能自己想出一个排序算法(但这可能不是最有效的) - 考虑如何手动对数字进行排序并实现它。

标签: python python-3.x


【解决方案1】:

我不知道为什么在没有内置函数的情况下会这样做,但这是一个有效的冒泡排序示例。 http://rosettacode.org/wiki/Sorting_algorithms/Bubble_sort#Python

def bubble_sort(seq):
    """Inefficiently sort the mutable sequence (list) in place.
       seq MUST BE A MUTABLE SEQUENCE.

       As with list.sort() and random.shuffle this does NOT return 
    """
    changed = True
    while changed:
        changed = False
        for i in xrange(len(seq) - 1):
            if seq[i] > seq[i+1]:
                seq[i], seq[i+1] = seq[i+1], seq[i]
                changed = True
    return seq

if __name__ == "__main__":
   """Sample usage and simple test suite"""

   from random import shuffle

   testset = range(100)
   testcase = testset[:] # make a copy
   shuffle(testcase)
   assert testcase != testset  # we've shuffled it
   bubble_sort(testcase)
   assert testcase == testset  # we've unshuffled it back into a copy

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-10
    • 2019-05-29
    • 1970-01-01
    • 2020-11-12
    • 2017-02-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多