python超精简代码实现快速排序

版权声明:本文为博主原创文章,转载请说明出处 https://blog.csdn.net/qq_31192383/article/details/79003017

在学习CS231n课程的时候,看到作者给的快排示例,觉得特精简,就记下来了。
以前在课本上看到的快排使用循环写的,感觉相对比较复杂,这个递归的思想,虽然代码执行速度上可能没有循环快,但是代码可读性很强,对理解快排也是很有帮助。

def quicksort(arr):
    if len(arr) <= 1:
        return arr
    pivot = arr[int(len(arr) / 2)]
    left = [x for x in arr if x < pivot]
    middle = [x for x in arr if x == pivot]
    right = [x for x in arr if x > pivot]
    return quicksort(left) + middle + quicksort(right)

#测试
import numpy as np
x = np.random.randint(0, 10000, 10000)
print(x)
print(quicksort(x))

这里写图片描述
结果如图。

猜你喜欢

转载自blog.csdn.net/qq_31192383/article/details/79003017