1.python代码
def quickSort(data,left,right):
if (right-left) == 1:
#待排序集合中只有两个元素,直接比较大小
if data[left] > data[right]:
#左大于右则互换位置
data[left],data[right] = data[right],data[left]
elif left<right:
#待排序集合中元素多余两个
i=left
j=right
#i,j分别是左右指针
temp = data[left]
#以左边第一个为比较基准
while i<j:
while i<j and data[j]>temp:
j -= 1
#交换位置
if i<j:
data[i] = data[j]
i +=1#左指针右移
while i<j and data[i]<temp:
i += 1
if i<j:
data[j] = data[i]
j -= 1#右指针左移
data[i] = temp#此时i=j
quickSort(data,left,i-1)
quickSort(data,i+1,right)
2.测试
if __name__ == '__main__':
data = [6,7,78,26,35,5,10]
quickSort(data,0,6)
print(data)
3.输出
[output] data=[5, 6, 7, 10, 26, 35, 78]