排序方法补

Posted AcodingDog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了排序方法补相关的知识,希望对你有一定的参考价值。

插入法排序还可以用python的切片功能和递归的思路来实现

‘‘‘
From smallest to largest
‘‘‘
def insert_sorted(list_of_nb):
    ‘‘‘
    >>> insert_sorted([5,4,56,6,7,85,35])
    [4, 5, 6, 7, 35, 56, 85]
    ‘‘‘
    if not list_of_nb:
        return
    return _insert_sorted(list_of_nb)

def _insert_sorted(list_of_nb):
    if len(list_of_nb) == 1:
        return list_of_nb
    L1 = _insert_sorted(list_of_nb[1:])
    if list_of_nb[0] <= L1[0]:
        return [list_of_nb[0]] + L1
    elif list_of_nb[0] >= L1[-1]:
        return L1 + [list_of_nb[0]]
    else:
        if len(L1) == 2:
            return [L1[0]] + [list_of_nb[0]] + [L1[-1]]
        i = 1
        while i < len(L1):
            if list_of_nb[0] < L1[i]:
                return L1[:i] + [list_of_nb[0]] + L1[i:]
            i += 1

if __name__ == __main__:
    import doctest
    doctest.testmod()

比较tricky的地方是L1长度为2的时候要特殊对待

以上是关于排序方法补的主要内容,如果未能解决你的问题,请参考以下文章

C#VS快捷键

C#VS快捷键

Atom编辑器折腾记_(15)JS代码片段补全(插件:javascript-snippets)

排序方法补

20165237 2017-2018-2 《Java程序设计》第十周考试补做及编程题

2.26排序专项测试补题