# -*- coding:utf-8 -*-classSolution:defGetLeastNumbers_Solution(self, tinput, k):if len(tinput) < k:
return []
result = []
self.Partition(tinput, 0, len(tinput)-1)
for i in range(k):
result.append(tinput[i])
return result
defPartition(self, array, left, right):if (left < right):
pivot = array[left]
i = left
j = right
while (i < j):
while (i < j) and array[j] >= pivot:
j -= 1if i < j:
array[i] = array[j]
i += 1while (i < j) and array[i] < pivot:
i += 1if i < j:
array[j] = array[i]
j -= 1
array[i] = pivot
self.Partition(array, left, i-1)
self.Partition(array, i+1, right)