第26行的语法错误

时间:2015-01-17 21:27:21

标签: python syntax-error quicksort

第26行的语法错误。这是下面的代码。不知道为什么我会收到错误。在python中实现快速排序

'''快速排序'''

def quicksort(arr, size):
    partition(arr, size)

def partition(arr, size):
    if size <= 1:
        return

    left = 0
    right = size - 1
    pivot = arr[size/2]

    while left < right:
        while arr[left] < pivot:
            left += 1
        while arr[right] > pivot:
            right -= 1

        temp = arr[left]
        arr[left] = arr[right]
        arr[right] = temp

    partition(arr, left)
    partition(arr[left:], len(arr[left:]) 
arr = [1,2,3,4,5,45,3,5,4,6]  
quicksort(arr, len(arr))

2 个答案:

答案 0 :(得分:6)

下面:

partition(arr[left:], len(arr[left:]) 
                                     ↑

你错过了一个)。使用IDE将真正帮助您找到像这样的小问题。

请注意,您的代码遇到了更多问题,它们与您遇到的语法错误无关。

一般说明:下次发帖时请多加努力,发布确切的错误并尝试用自己的话说明你有什么问题,这样你就能得到更好,更快的帮助。在标题中发布错误以及问题正文中的函数并不是一个很好的问答方式。

答案 1 :(得分:0)

你在第26行遗漏了一个括号。

partition(arr[left:], len(arr[left:]) 

应该是:

partition(arr[left:], len(arr[left:]))