MCPcopy Create free account
hub / github.com/HuberTRoy/leetCode / quickSort

Method quickSort

Array/KthLargestElementInAnArray.py:46–66  ·  view source on GitHub ↗

每次都选一个基准点,大的放在右边,小的放在左边,等于的随便归到一个地方,不断拆分拆分。 这里直接选用[0],当然这种情况下往往会发生不理想的情况, 不理想的情况表示每次恰好都是最小或最大,这样的结果会直接导致算法变为O(n^2).

(self, unsorted_list)

Source from the content-addressed store, hash-verified

44class Solution(object):
45
46 def quickSort(self, unsorted_list):
47 """
48 每次都选一个基准点,大的放在右边,小的放在左边,等于的随便归到一个地方,不断拆分拆分。
49 这里直接选用[0],当然这种情况下往往会发生不理想的情况,
50 不理想的情况表示每次恰好都是最小或最大,这样的结果会直接导致算法变为O(n^2).
51 """
52
53 if len(unsorted_list) <= 1:
54 return unsorted_list
55
56 left = []
57 right = []
58
59 meta = self._getMiddle(unsorted_list)
60 for i in unsorted_list[:meta] + unsorted_list[meta+1:]:
61 if i <= unsorted_list[meta]:
62 left.append(i)
63 continue
64 right.append(i)
65
66 return self.quickSort(left) + [unsorted_list[meta]] + self.quickSort(right)
67
68 def _getMiddle(self, unsorted_list):
69 """

Callers 1

Calls 1

_getMiddleMethod · 0.95

Tested by

no test coverage detected