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

Method _getMiddle

Array/KthLargestElementInAnArray.py:68–83  ·  view source on GitHub ↗

返回快排所需的基准点, 左右中中间选择一个。 若不足3位,选左。

(self, unsorted_list)

Source from the content-addressed store, hash-verified

66 return self.quickSort(left) + [unsorted_list[meta]] + self.quickSort(right)
67
68 def _getMiddle(self, unsorted_list):
69 """
70 返回快排所需的基准点,
71 左右中中间选择一个。
72 若不足3位,选左。
73 """
74 if len(unsorted_list) < 3:
75 return 0
76
77 left = unsorted_list[0]
78 right = unsorted_list[-1]
79 middle = unsorted_list[len(unsorted_list) // 2]
80 l, r, m = [(0, left), (len(unsorted_list) - 1, right), (len(unsorted_list) // 2, middle)]
81 # 这里对比了自己写的merge sort 与内置的差距,
82 # 在有key的情况下差距非常大。
83 return sorted([l, r, m], key=lambda x: x[1])[1][0]
84
85
86 def mergeSort(self, unsorted_list, key=None):

Callers 1

quickSortMethod · 0.95

Calls

no outgoing calls

Tested by

no test coverage detected