Python 实现快速排序
关于快排的原理,这里不做过多介绍了,在我之前的博客里有很详细的原理讲解,连接在这里:算法——快速排序的原理讲解
这次是使用 Python 实现的快速排序,和 C++ 唯一的区别就是没有使用do-while
,这里通过while
和其他代码的配合实现了do-while
的功能,直接上代码:
def quickSort(list, l, r):
if l == r:
return
x = list[l]
i = l
j = r
while i < j:
while list[i] < x:
i += 1
while list[j] > x:
j -= 1
if i < j:
item = list[i]
list[i] = list[j]
list[j] = item
i += 1
j -= 1
quickSort(list, l, j)
quickSort(list, j + 1, r)
if __name__ == '__main__':
list = [12, 124, 33, 564, 4, 67, 90]
quickSort(list, 0, len(list) - 1)
for i in list:
print(i)
运行结果:
4
12
33
67
90
124
564