quick sort

Quick sort

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
class :
"""
@param A: an integer array
@return: nothing
"""
def sortIntegers2(self, A):

'''
quick sort
'''
self.slidingIntegers(A, 0, len(A)-1)

def slidingIntegers(self, A, start, end):
if start >= end:
return
i, j = start, end
mid = A[(start+end) // 2]
while i <= j:
while i<= j and A[i] < mid:
i+=1
while i <= j and A[j] > mid:
j-=1
if i <= j:
A[i],A[j] = A[j],A[i]
i+=1
j-=1
self.slidingIntegers(A, start, j)
self.slidingIntegers(A, i, end)