美文网首页python百例
75-递归函数练习:快速排序

75-递归函数练习:快速排序

作者: 凯茜的老爸 | 来源:发表于2018-08-02 09:52 被阅读2次

    思路:
    1、假设列表中第一个数是中间值,比它小的数字放到smaller列表中,比它的大的数字放到larger列表中。再将这三项拼接起来。
    2、因为smaller和larger仍然是无序列表,需要使用相同的方法继续分割。
    3、如果列表的长度是0或1,那么就没有必要再排序了。

    from random import randint
    
    def quick_sort(num_list):
        if len(num_list) < 2:
            return num_list
    
        middle = num_list[0]
        smaller = []
        larger = []
        for i in num_list[1:]:
            if i < middle:
                smaller.append(i)
            else:
                larger.append(i)
    
        return quick_sort(smaller) + [middle] + quick_sort(larger)
    
    if __name__ == '__main__':
        alist = [randint(1, 100) for i in range(10)]
        print(alist)
        print(quick_sort(alist))
    

    相关文章

      网友评论

        本文标题:75-递归函数练习:快速排序

        本文链接:https://www.haomeiwen.com/subject/qdhjvftx.html