使用中间元素作为枢轴的python中的快速排序实现

时间:2019-06-01 04:46:11

标签: python-3.x quicksort

我正在尝试在python中实现快速排序算法,但无法获得所需的输出,而是返回None。

# Author: Junth Basnet

def QuickSortFirst(array):
    QuickSort(array, 0, len(array) - 1)

def QuickSort(array, left, right):
    if left >= right:
        return array
    pivot = array[(left + right) // 2]
    index = Partition(array, left, right, pivot)
    QuickSort(array, left, index - 1)
    QuickSort(array, index, right)

def Partition(array, left, right, pivot):
    while left <= right:
        while array[left] < pivot:
            left += 1
        while array[right] > pivot:
            right -= 1
        if left <= right:
            array[left], array[right] = array[right], array[left]
            left += 1
            right -= 1
    return left

array = [1, 6, 4, 10, 7, 30, 25]
print(array)
sorted_array = QuickSortFirst(array)
print(sorted_array)

预期结果: [1、4、6、7、10、25、30]
实际结果: 没有

0 个答案:

没有答案