老师您好,快排这个不太理解,可以分步讲细一下嘛
来源:3-11 快排的时间复杂度及实现思想
雾中天
2022-06-13
老师您好,快排这个不太理解,可以分步讲细一下嘛
写回答
1回答
-
大周
2022-06-14
核心思想是:
1、从列表中取出任意一个元素,但是我们一般取第一个
2、把这个取出来的元素作为比较的标准
3、把比这个元素小的放在左边
4、把比这个元素大的放在右边实现的时候,有多种方法,我一直比较喜欢用递归和列表推导式的方法。 你把咱们课程中的代码,加入一些打印的信息,这样就能知道每一步的具体操作了。
我来加一下,你感受一下,然后如果你想看更具体的信息,你也可以单独加
def quick_sort(quick_list): print("现在的列表是:{}".format(quick_list)) if quick_list == []: print("-----寻找结束,此时列表为空-----") return [] first = quick_list[0] # 使用列表推导式加上递归实现 print("开始寻找比第一个元素《《小》》的元素,第一个元素是{}".format(first)) less = quick_sort([l for l in quick_list[1:] if l <first]) print("开始寻找比第一个元素《《大》》的元素,第一个元素是{}".format(first)) more = quick_sort([m for m in quick_list[1:] if m >= first]) print("*****此时返回的列表是{}*****".format(less + [first] + more)) return less + [first] + more print(quick_sort([4,2,56,35,78,46,89,1]))00
相似问题