玩蛇网提供最新Python编程技术信息以及Python资源下载!

Python 类快速排序方法找到第定n小数的方法

python 用类快排的方法找寻"第n小"的数,Python 类快速排序方法找到第定n小数的方法。

(n)快速排序风格基于排序算法查找数据。
有用的寻找中位数,百分位数、四分位数和十分位数。
相当于数据[n]当已经排序的数据。

 
#coding=utf-8

import random

def select(data, n):
    "Find the nth rank ordered element (the least value has rank 0)."

    data = list(data)

    if not 0 <= n < len(data):
        raise ValueError('not enough elements for the given rank')

    while True:
        pivot = random.choice(data)
        pcount = 0
        under, over = [], []
        uappend, oappend = under.append, over.append


#www.iplaypy.com
    for elem in data:
       if elem < pivot:
 
   uappend(elem)
       elif elem > pivot:

    oappend(elem)
 
    else:
       pcount += 1
 
      if n < len(under):
         data = under
      elif n < len(under) + pcount:
         return pivot
   
    else:
       data = over
 
n -= len(under) + pcount

玩蛇网文章,转载请注明出处和文章网址:http://www.iplaypy.com/code/algorithm/a2597.html [复制]



我要小额赞助,鼓励作者写出更好的教程↓↓↓

玩蛇网Python QQ群,欢迎加入: ① 279974227 玩蛇网Python新手群
修订日期:2016年03月22日 - 09时22分32秒 发布自玩蛇网

我要分享到:
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
相关文章推荐
别人正在看
特别推荐
站长推荐:
去顶部 去底部