【python】快速排序?

题目:如何进行快速排序?

分析:首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后把所有比它小的数都放到它前面,大后方面。

code:
def quick_sort(lists, left, right):

    if left > right:

        return lists

    key = lists[left]

    while left < right:

        if left < right and lists[right] >= key:

            right -= 1

        lists[left] = lists[right]

        if left < right and lists[left] <= key:

            left += 1

        lists[right] = lists[left]

    lists[right] = key

    quick_sort(lists, low, left - 1)

    quick_sort(lists, left + 1, high)

    return lists

if __name__ == "__main__":

    lists = [3, 4, 2, 8, 9, 5, 1]

    print(quick_sort(lists, 0, len(lists) - 1))

你可能感兴趣的:(【python】快速排序?)