最小的K個數 劍指offer python版

2021-10-19 12:25:58 字數 890 閱讀 9949

題目描述

輸入n個整數,找出其中最小的k個數。例如輸入4,5,1,6,2,7,3,8這8個數字,則最小的4個數字是1,2,3,4。

示例1輸入

[4,5,1,6,2,7,3,8],4

返回值

[1,2,3,4]

【思路】

採用冒泡演算法,每次將最小的數值冒泡到列表頭部,經過k次冒泡,即完成最小k個數的提取

【邊界情況】

# -*- coding:utf-8 -*-

class

solution

:def

getleastnumbers_solution

(self, tinput, k)

:# write code here

if k<

1or k>

len(tinput)

:return

length=

len(tinput)

for i in

range(0

,length-1)

:if i==k:

break

for j in

range

(length-1,

0+i,-1

):if tinput[j]

: tmp=tinput[j]

tinput[j]

=tinput[j-1]

tinput[j-1]

=tmp

return tinput[

:k]

這道考題,採用冒泡比較簡單,注意提前終止冒泡即可,沒必要全部排序再提取k個最小值

劍指offer 最小k個數

1.題目 輸入n個整數,找出其中最小的k個數。例如輸入4,5,1,6,2,7,3,8這8個數字,則最小的4個數字是1,2,3,4,2.方法 1 基於堆排序演算法,構建最大堆。時間複雜度為o nlogk 2 如果用快速排序,時間複雜度為o nlogn 3 如果用插入排序,時間複雜度為o n 2 3.演...

劍指offer 最小的K個數

華電北風吹 天津大學認知計算與應用重點實驗室 日期 2015 10 4 題目描述 輸入n個整數,找出其中最小的k個數。例如輸入4,5,1,6,2,7,3,8這8個數字,則最小的4個數字是1,2,3,4,解析 基於插入排序的思想可以想到使用乙個長度為k的排序陣列儲存最小的k個元素,複雜度o nk 基於...

《劍指offer》最小的K個數

輸入n個整數,找出其中最小的k個數。例如輸入4,5,1,6,2,7,3,8這8個數字,則最小的4個數字是1,2,3,4,輸入給整數陣列,和k 找出其中最小的k個數 class solution 1 先用插入排序對陣列中數進行排序。2 取出有序陣列中最小的kge。附 這只是乙個比較簡單的方法。如果考慮...