How to Implement Quicksort Algorithm in Python – the Pytho
- 时间:2020-09-28 16:28:51
- 分类:网络文摘
- 阅读:135 次
In here, we talk about the implementation of QuickSort in Python – the well-known and standard sorting algorithm that is used today.
It is not so easy to implement except in Python, in a Pythonic way. The quicksort algorithm can be easily illustrated using the following Python recursion function.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | class Solution(object): def sortArray(self, nums): """ :type nums: List[int] :rtype: List[int] """ if len(nums) < = 1: return nums pivot = random.choice(nums) lt = [v for v in nums if v < pivot] eq = [v for v in nums if v == pivot] gt = [v for v in nums if v > pivot] return self.sortArray(lt) + eq + self.sortArray(gt) |
class Solution(object):
def sortArray(self, nums):
"""
:type nums: List[int]
:rtype: List[int]
"""
if len(nums) < = 1:
return nums
pivot = random.choice(nums)
lt = [v for v in nums if v < pivot]
eq = [v for v in nums if v == pivot]
gt = [v for v in nums if v > pivot]
return self.sortArray(lt) + eq + self.sortArray(gt) First, we choose a random pivot, then we partition the input array into three parts, then recursively partition left, and right parts, finally merge into a new list.
The downside of above implementation is it requires additional O(N) space, which can be eliminated using in-place swapping.
Depending on the randomness when choosing a good pivot, the performance of the quicksort may vary. The worst cases would be O(N^2), and average complexity is O(Nlog(N))
This implementation is easy to remember and easy to write on coding whiteboard. And it is code that works rather than pseudo-code.
Recursive Quicksort implementation in Javascript: Javascript Coding Exercise: The QuickSort Implementation in Javascript
--EOF (The Ultimate Computing & Technology Blog) --
推荐阅读:豆角中毒的预防方法和治疗措施 炒豆角一定要煮熟才是安全的 姜蒜发芽了不会产生有毒物质 营养保健:七种干果养胃补肾延寿 整治食品安全要用重典才能阻击问题食品 演艺明星代言问题食品要依法追责 危害食品安全的犯罪手段更趋隐蔽 对危害食品安全犯罪案件从严量刑 媒体评论:食品安全乱象,谁之过? 健康饮食:妙用瓜果防治夏季疾病
- 评论列表
-
- 添加评论