快速排序

快速排序

才发现自己配置好差,最坏情况10000就堆栈溢出了。。。。。

# coding: utf-8
import random
import sys

sys.setrecursionlimit(100000000)

def quick_sort(li, left, right):
    if left < right:
        mid = partition(li, left, right)
        quick_sort(li, left, mid-1)
        quick_sort(li, mid+1, right)
    return li


def partition(li, left, right):
    tmp = li[left]
    while left < right:
        while left < right and li[right] >= tmp:
            right -= 1
        li[left] = li[right]
        while left < right and li[left] <= tmp:
            left += 1
        li[right] = li[left]
    li[right] = tmp
    return left


li = list(range(10000,0,-1))
random.shuffle(li)
print(quick_sort(li,0,len(li)-1))

 

posted on 2020-07-25 20:29  Bethuel  阅读(83)  评论(0)    收藏  举报