算法题/最小的k个数

来源:互联网 发布:java mainframe 编辑:程序博客网 时间:2024/05/21 19:39

python2.7

最小的 k 个数
例子说明:
例如输入 4 、5 、1、6、2、7、3 、8 这 8 个数字,则最小的 4 个数字是 1 、2、3 、4
思路:最简单的方法,将数组排序,求前k个数(后续改进)

#coding:utf-8def kuaisu(a):    low = []    high = []    middle = []    if len(a) < 1:        return a    else:        baseline = a[0]        for i in a:            if i < baseline:                low.append(i)            elif i > baseline:                high.append(i)            else:                middle.append(i)        low_arr = kuaisu(low)        high_arr = kuaisu(high)    return low_arr+middle+high_arrdef k_numbers(a,k):    sort_arr = kuaisu(a)    print(sort_arr[0:k])k_numbers([6,7,8,1,2,3,10,11,12,5],3)

这里写图片描述

面向对象

# -*- coding:utf-8 -*-class Solution:    def GetLeastNumbers_Solution(self, tinput, k):        tinput.sort()        if k > len(tinput):            return []        else:            return tinput[0:k]
原创粉丝点击