算法与数据结构——快速排序

def quick_sort(nums):
    if len(nums)>=2:
        mid = nums[len(nums)//2]
        left,right = [],[]
        nums.remove(mid)
        for d in nums:
            if d < mid:
                left.append(d)
            else:
                right.append(d)
        return quick_sort(left) + [mid] + quick_sort(right)
    else:
        return nums
if __name__ == "__main__":
    nums = [10, 1, 35, 61, 89, 36, 55]
    print(quick_sort(nums))

是对冒泡排序的一种改进吧
用的也比较多
首先,有一组数列,分成两部分
找一个中间值,其一部分的数据都比他大,另一部分都比他小
然后重复上述步骤
拆的过程其实已经将序列排好了大小
合并的时候直接合并就可以了

全部评论

相关推荐

点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务