欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python實現返回數組中第i小元素的方法示例

 更新時間:2017年12月04日 11:17:31   作者:愛橙子的OK繃  
這篇文章主要介紹了Python實現返回數組中第i小元素的方法,結合實例形式分析了Python針對數組的遍歷、排序、運算等相關操作技巧,需要的朋友可以參考下

本文實例講述了Python實現返回數組中第i小元素的方法。分享給大家供大家參考,具體如下:

#! /usr/bin/env python
#coding=utf-8
#期望為線性時間的選擇算法
import random
class RandomSelect(object):
  def Partition(self,a, p, r):
    x=a[r]
    i=p-1
    for j in range(p, r):
      '''如果a[j]>x,則只需將j的值加1即可使循環(huán)不變量繼續(xù)保持;
      如果a[j]<=x,則將下標i的值加1,并交換a[i]和a[j],再將
      j的值加1.此時循環(huán)不變量同樣得到保持'''
      if a[j]<=x:
        i=i+1
        a[i], a[j]=a[j], a[i]
    a[i+1], a[r]=a[r], a[i+1]
    return i+1
  def RandomPartition(self,a, p, r):
    i=random.randint(p, r) #生成的隨機數為p=<i<=r
    a[r], a[i]=a[i], a[r]
    return self.Partition(a, p, r)
  def randomSelect(self,a,p,r,i):
    if p==r:
      return a[p]
    q=self.RandomPartition(a,p,r)
    k=q-p+1
    if i==k:
      return a[q]
    elif i<k:
      return self.randomSelect(a,p,q-1,i)
    else:
      return self.randomSelect(a,q+1,r,i-k)
if __name__ == '__main__':
  print "腳本之家測試結果:"
  a=[random.randint(0,20) for i in range(10)]
  print a
  #a=sorted(a)
  #print a
  r=RandomSelect()
  r.randomSelect(a,0,len(a)-1,3)
  print a[2]#數組中的第三小的數
  a=sorted(a)
  print a

運行結果:

更多關于Python相關內容感興趣的讀者可查看本站專題:《Python數組操作技巧總結》、《Python字符串操作技巧匯總》、《Python函數使用技巧總結》、《Python入門與進階經典教程》及《Python數據結構與算法教程

希望本文所述對大家Python程序設計有所幫助。

相關文章

  • 使用Python實現NBA球員數據查詢小程序功能

    使用Python實現NBA球員數據查詢小程序功能

    這篇文章主要介紹了使用Python實現NBA球員數據查詢小程序功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • Python協程asyncio模塊的演變及高級用法

    Python協程asyncio模塊的演變及高級用法

    網上很多關于Python協程asyncio模塊的教程都是基于老版Python的, 本文將以對比方式展示新老Python版本下協程的寫法有什么不同并總結了asyncio的一些高級用法, 包括如何獲取協程任務執(zhí)行結果,gather和wait方法的區(qū)別以及如何給任務添加回調函數。
    2021-05-05
  • python使用py2neo創(chuàng)建neo4j的節(jié)點和關系

    python使用py2neo創(chuàng)建neo4j的節(jié)點和關系

    這篇文章主要介紹了python使用py2neo創(chuàng)建neo4j的節(jié)點和關系,第一步使用py2neo連接neo4j的方法然后根據dict創(chuàng)建Node,更多相關資料需要的朋友參考下面文章內容
    2022-02-02
  • python導入同級模塊的實現

    python導入同級模塊的實現

    這篇文章主要介紹了python導入同級模塊的實現方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • 簡單了解python調用其他腳本方法實例

    簡單了解python調用其他腳本方法實例

    這篇文章主要介紹了簡單了解python調用其他腳本方法實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • python mac下安裝虛擬環(huán)境的圖文教程

    python mac下安裝虛擬環(huán)境的圖文教程

    這篇文章主要介紹了python mac下安裝虛擬環(huán)境 的相關資料,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-04-04
  • python?dataframe獲得指定行列簡單例子

    python?dataframe獲得指定行列簡單例子

    在DataFrame中取特定行列的數據是一個常見的操作,這篇文章主要給大家介紹了關于python?dataframe獲得指定行列的簡單例子,需要的朋友可以參考下
    2024-03-03
  • Python批量合并有合并單元格的Excel文件詳解

    Python批量合并有合并單元格的Excel文件詳解

    經常使用Excel的用戶都知道,合并單元格的存在,這篇文章主要給大家介紹了關于利用Python如何批量合并有合并單元格的Excel文件的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起看看吧。
    2018-04-04
  • Python?add()集合中添加元素的實現

    Python?add()集合中添加元素的實現

    本文主要介紹了Python?add()集合中添加元素的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07
  • python?面向對象開發(fā)及基本特征

    python?面向對象開發(fā)及基本特征

    面向對象編程是一種編程方式,此編程方式的落地需要使用“類”和 “對象”來實現,所以,面向對象編程其實就是對 “類”和“對象” 的使用,今天給大家介紹下python?面向對象開發(fā)及基本特征,感興趣的朋友一起看看吧
    2022-03-03

最新評論