用python写个快排

Posted ygeloutingyu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用python写个快排相关的知识,希望对你有一定的参考价值。

快排过程比较简单就直接上代码了:

技术分享图片
 1 #!/usr/bin/python3
 2 
 3 def quik_sort(L, left, right):
 4     if left <= right:
 5         key = L[left]
 6         i = left
 7         j = right
 8         while i < j:
 9             while i < j and key <= L[j]:
10                 j -= 1
11             L[i] = L[j]
12             while i < j and L[i] <= key:
13                 i += 1
14             L[j] = L[i]
15         L[i] = key
16         quik_sort(L, left, i - 1)
17         quik_sort(L, i + 1, right)
18 
19 
20 
21 a = list(map(int, input().split()))
22 
23 quik_sort(a, 0, len(a) - 1)
24 
25 for x in a:
26     print(x, end =  )
27 print()
View Code

注意:python 中的数字类型是不可变的,因此 x++ 并不会让 x 的值加 1

以上是关于用python写个快排的主要内容,如果未能解决你的问题,请参考以下文章

P2-2017级算法第二次上机 A ModricWang‘s Real QuickSort Query

NOIP2007 提高组 题解

数据结构和算法-面试题

快排用Python的实现 - 简洁方式

Python的快排应有的样子

用 Python 写个魂斗罗