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

Python實(shí)現(xiàn)返回?cái)?shù)組中第i小元素的方法示例

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

本文實(shí)例講述了Python實(shí)現(xiàn)返回?cái)?shù)組中第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,則將下標(biāo)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) #生成的隨機(jī)數(shù)為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 "腳本之家測試結(jié)果:"
  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]#數(shù)組中的第三小的數(shù)
  a=sorted(a)
  print a

運(yùn)行結(jié)果:

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)組操作技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python函數(shù)使用技巧總結(jié)》、《Python入門與進(jìn)階經(jīng)典教程》及《Python數(shù)據(jù)結(jié)構(gòu)與算法教程

希望本文所述對大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • 使用Python實(shí)現(xiàn)NBA球員數(shù)據(jù)查詢小程序功能

    使用Python實(shí)現(xiàn)NBA球員數(shù)據(jù)查詢小程序功能

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

    Python協(xié)程asyncio模塊的演變及高級用法

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

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

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

    python導(dǎo)入同級模塊的實(shí)現(xiàn)

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

    簡單了解python調(diào)用其他腳本方法實(shí)例

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

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

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

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

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

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

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

    Python?add()集合中添加元素的實(shí)現(xiàn)

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

    python?面向?qū)ο箝_發(fā)及基本特征

    面向?qū)ο缶幊淌且环N編程方式,此編程方式的落地需要使用“類”和 “對象”來實(shí)現(xiàn),所以,面向?qū)ο缶幊唐鋵?shí)就是對 “類”和“對象” 的使用,今天給大家介紹下python?面向?qū)ο箝_發(fā)及基本特征,感興趣的朋友一起看看吧
    2022-03-03

最新評論