# -*- coding:utf-8 -*-
class QuickSort:
def quickSort(self, A, n):
return self.q_sort(A, 0, n-1)
def q_sort(self,A,start,end):
if start < end:
pivot = self.partition(A, start, end)
self.q_sort(A, start, pivot-1)
self.q_sort(A, pivot+1, end)
return A
def partition(self, A, start, end):
if start < end:
left = start
right = end
temp = A[left]
while left < right:
while left< right and A[right] >= temp:
right -= 1
if left < right:
A[left] = A[right]
left +=1
while left < right and A[left] <= temp:
left += 1
if left < right:
A[right] = A[left]
right -=1
A[left] = temp
return left