快速排序

import time
def timer(func):
    def func_in(*args, **kw):
        start_time = time.time()
        print(start_time)
        func(*args, **kw)
        end_time = time.time()
        print(end_time)
        spend_time = end_time - start_time
        print(spend_time)

    return func_in

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


def _quick_sort(data, left, right):
    if left < right:
        mid = partition(data, left, right)
        print(mid)
        _quick_sort(data, left, mid - 1)
        _quick_sort(data, mid + 1, right)


@timer
def quick_sort(data):
    _quick_sort(data, 0, len(data) - 1)


quick_sort(li)
print(li)

 

posted @ 2022-09-09 16:16  maplethefox  阅读(19)  评论(0)    收藏  举报