国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

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

2020-02-16 10:55:49
字體:
來源:轉載
供稿:網友

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

#! /usr/bin/env python#coding=utf-8#期望為線性時間的選擇算法import randomclass 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即可使循環不變量繼續保持;      如果a[j]<=x,則將下標i的值加1,并交換a[i]和a[j],再將      j的值加1.此時循環不變量同樣得到保持'''      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程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 桂东县| 东台市| 乌鲁木齐市| 甘南县| 绥棱县| 乌兰察布市| 论坛| 玉溪市| 涞水县| 河南省| 井冈山市| 罗平县| 雷波县| 南华县| 江口县| 长宁县| 佛冈县| 谢通门县| 工布江达县| 勐海县| 新建县| 梅河口市| 尚志市| 蕉岭县| 平陆县| 方山县| 简阳市| 天水市| 方城县| 阳原县| 南乐县| 合阳县| 东城区| 遂昌县| 孝昌县| 广宁县| 万山特区| 花莲市| 成都市| 沭阳县| 通州区|