# -*- coding:utf-8 -*-
class Solution:
    def GetLeastNumbers_Solution(self, tinput, k):
        # write code here
        if len(tinput) == 0 or k == 0:
            return []
        if len(tinput) == k:
            return tinput
        left = 0
        right = len(tinput)-1
        l = tinput
        left = self.quick_sort(l, left, right)
        while left != k-1:
            if left < k-1:
                left = self.quick_sort(l, left+1, right)
            if left > k-1:
                left = self.quick_sort(l, 0,left -1 )
        return l[:k]
#         tinput.sort()
#         return tinput[:k]
    def quick_sort(self,l,left,right):
        low = left
        point = l[left]
        high = right
        while low < high:
            while low<high and point <= l[high]:
                high -= 1
            while low<high and point >= l[low]:
                low += 1
            self.swap(l, low,high)
        self.swap(l, left, low)
        return low 

    def swap(self,l,i,j):
        temp = l[i]
        l[i]= l[j]
        l[j] = temp