Для первого вопроса Вы можете определить глобальную переменную и увеличивать ее в любое время.
count = 0 # define it in global scope
def partition(arr,low,high):
i = ( low-1 ) # index of smaller element
pivot = arr[high] # pivot
for j in range(low , high):
# If current element is smaller than or
# equal to pivot
count += 1 # increment wherever you want
if arr[j] <= pivot:
# increment index of smaller element
i = i+1
arr[i],arr[j] = arr[j],arr[i]
arr[i+1],arr[high] = arr[high],arr[i+1]
return ( i+1 )
Вы можете получить доступ к ее правильному значению после выполнения сортировки.
По второму вопросу , выбор точки разворота на ваш выбор.Вы на самом деле делаете это сейчас:
pivot = arr[high] # pivot
Вы используете последний элемент подмассива для поворота.Вы можете использовать arr[low]
для выбора первого элемента.
Примечание: Добро пожаловать в сообщество StackOverflow.Есть много вопросов, которые, кажется, являются предметом, который многие другие пользователи, возможно, захотят задать, или задавали раньше!Ответы других на подобные вопросы могут решить вашу проблему.Вы также можете посмотреть на этих SO ответов, чтобы получить больше информации о подсчете количества сравнений и выбора пивота: Для первого вопроса Для второго вопроса