亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python找出最小的K個數(shù)實例代碼

 更新時間:2018年01月04日 11:20:04   作者:明柳夢少  
這篇文章主要介紹了Python找出最小的K個數(shù)實例代碼,簡單分析了實現(xiàn)思路,冒泡法和partition思想,具有一定借鑒價值,需要的朋友可以參考下

題目描述

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

這個題目完成的思路有很多,很多排序算法都可以完成既定操作,關(guān)鍵是復(fù)雜度性的考慮。以下幾種思路當(dāng)是筆者拋磚引玉,如果讀者有興趣可以自己再使用其他方法一一嘗試。

思路1:利用冒泡法

臨近的數(shù)字兩兩進行比較,按照從小到大的順序進行交換,如果前面的值比后面的大,則交換順序。這樣一趟過去后,最小的數(shù)字被交換到了第一位;然后是次小的交換到了第二位,。。。,依次直到第k個數(shù),停止交換。返回lists的前k個數(shù)(lists[0:k],前閉后開)

思路2:使用快排中的partition思想。

①我們設(shè)定partition函數(shù)的哨兵為key=lists[left],在partition函數(shù)中完成一輪比較的結(jié)果是,比key大的數(shù)都在其右邊,比key小的數(shù)放在其左邊。完成該輪后返回其left=right時left的值。

②我們判斷l(xiāng)eft的值是比k大還是?。?/p>

如果left的值比k大,說明上輪partition之后,lists中前l(fā)eft個小的數(shù)在左邊,其余的數(shù)在其右邊,我們還需要把尋找范圍縮小,下次找的時候只在數(shù)組前面left個數(shù)中找了。

如果left的值比k小,說明上輪partition之后,前l(fā)eft個數(shù)找的太少了,我們需要再往數(shù)組的后面找。

# -*- coding: utf-8 -*- 
""" 
Date: Tue Sep 19 10:50:11 2017 
 
Created by @author: xiaoguibao 
 
E-mail: mingliumengshao@163.com 
 
Content: 找最小的k個數(shù) 
 
""" 
def function1(lists,k): 
#  冒泡法 
  length = len(lists) 
  for i in range(k): 
    for j in range(i+1,length): 
      if lists[i] > lists[j]: 
        lists[j],lists[i] = lists[i],lists[j] 
  return lists[0:k] 
 
""" 
思路2 包括2個部分function2_partion和function2 
""" 
 
def function2_partion(lists,left,right): 
  #劃分函數(shù)處理部分 
  key = lists[left] 
  while left < right: 
    while left < right and lists[right] >= key: 
      right -= 1 
    lists[left] = lists[right] 
    while left < right and lists[left] <= key: 
      left += 1 
    lists[right] = lists[left] 
  lists[right] = key 
  return left 
def function2(lists,k): 
  #劃分法主要函數(shù)部分 
  length = len(lists) 
  left = 0 
  right = length - 1 
  index = function2_partion(lists,left,right) 
  while k!=index: 
    if index > k-1: 
      right = index-1 
    else: 
      left = index+1 
    index = function2_partion(lists,left,right)  
  return lists[0:k] 
 
def main(): 
  lists = [1,1,6,4,11,9,2,10,3] 
#  print "思路一(冒泡法):",function1(lists,8) 
  print "思路二(劃分法):",function2(lists,8) 
if __name__=="__main__": 
  main() 

總結(jié)

以上就是本文關(guān)于Python找出最小的K個數(shù)實例代碼的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

相關(guān)文章

  • Python shutil模塊文件和目錄操作示例詳解

    Python shutil模塊文件和目錄操作示例詳解

    本文將會學(xué)習(xí)到?shutil?模塊,包括其主要功能和示例代碼,以幫助你更好地理解如何使用它來處理文件和目錄
    2023-11-11
  • Python?實操顯示數(shù)據(jù)圖表并固定時間長度

    Python?實操顯示數(shù)據(jù)圖表并固定時間長度

    這篇文章主要介紹了Python?實操顯示數(shù)據(jù)圖表并固定時間長度,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • numpy最值、求和的實現(xiàn)

    numpy最值、求和的實現(xiàn)

    本文主要介紹了numpy最值、求和的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • 使用Python3 編寫簡單信用卡管理程序

    使用Python3 編寫簡單信用卡管理程序

    這篇文章主要介紹了使用Python3 編寫簡單信用卡管理程序的代碼,非常不錯,具有參考借鑒價值,需要的朋友參考下吧
    2016-12-12
  • Python學(xué)習(xí)筆記之if語句的使用示例

    Python學(xué)習(xí)筆記之if語句的使用示例

    python的if語句和其他語言有些不同,它沒有用括號來表示代碼塊,而是使用縮進,現(xiàn)在乍聽一下你可能不太明白,所以下面這篇文章主要給大家介紹了關(guān)于Python學(xué)習(xí)筆記之if語句使用的相關(guān)資料,需要的朋友可以參考下。
    2017-10-10
  • Pandas中時間序列的處理大全

    Pandas中時間序列的處理大全

    這篇文章主要給大家介紹了關(guān)于Pandas中時間序列處理的相關(guān)資料,pandas 是基于NumPy 的一種工具,該工具是為解決數(shù)據(jù)分析任務(wù)而創(chuàng)建的,需要的朋友可以參考下
    2021-06-06
  • python基于itchat模塊實現(xiàn)微信防撤回

    python基于itchat模塊實現(xiàn)微信防撤回

    這篇文章主要為大家詳細(xì)介紹了python實現(xiàn)微信防撤回,基于itchat模塊,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • Python爬取qq空間說說的實例代碼

    Python爬取qq空間說說的實例代碼

    這篇文章主要介紹了Python爬取qq空間說說的實例代碼,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧
    2018-08-08
  • Python中re.findAll()、re.sub()、set()的使用

    Python中re.findAll()、re.sub()、set()的使用

    本文主要介紹了Python中re.findAll()、re.sub()、set()的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • 詳解Python裝飾器之@property

    詳解Python裝飾器之@property

    今天帶大家學(xué)習(xí)python裝飾器的相關(guān)知識,文中對Python @property做了非常詳細(xì)的介紹,對正在學(xué)習(xí)python的小伙伴們很有幫助,需要的朋友可以參考下
    2021-05-05

最新評論