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

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

python 培训

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.iplaypython.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.iplaypython.com/code/algorithm/a2597.html



微信公众号搜索"玩蛇网Python之家"加关注,每日最新的Python资讯、图文视频教程可以让你一手全掌握。强烈推荐关注!

微信扫描下图可直接关注

玩蛇网Python新手QQ群,欢迎加入: ① 240764603 玩蛇网Python新手群
文章发布日期:2016-03-22 09:22 玩蛇网 www.iplaypython.com

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