`

<找工作 四>取n个数中最大的k个数

 
阅读更多
#! /usr/bin/env python
#coding=utf-8
import random
def kidSort(s,k):
    if k<=0:
        return []
    if len(s)<=k:
        return s
    sa,sb=partition(s)
    
    ta=kidSort(sa,k)
    
    tb=kidSort(sb,k-len(sa))

    ta.extend(tb)
    return ta
def partition(s):
    Sa=[]
    Sb=[]

    rand=random.randint(0,len(s))

    s[0],s[rand%len(s)]=s[rand%len(s)],s[0]
    p=s[0]


    for z in s[1:]:

        if z>p:
            Sb.append(z)
        else:
            Sa.append(z)
        
    
    Sa.append(p)

    
    return Sa,Sb

print kidSort([3,1,2,123,12,31,24,123,1,41,41,4,1,241,24,14,1,241,24],8)
 

快排+python,非常不错,

分享到:
评论

相关推荐

    在一堆数中取得前K个最大最小的数的方法

    - **求解不同的浮点数**:在面对需要找出N个数中最大的K个不同浮点数的问题时,上述方法同样适用,但需要注意浮点数的比较方式以及哈希键的设计方法。 - **求解第k到第m大的数**:可以将问题转化为求解m-k+1个第k...

    语言程序设计课后习题答案

    cout &lt;&lt; "The size of a short int is:\t" &lt;&lt; sizeof(short) &lt;&lt; " bytes.\n"; cout &lt;&lt; "The size of a long int is:\t" &lt;&lt; sizeof(long) &lt;&lt; " bytes.\n"; cout &lt;&lt; "The size of a char is:\t\t" &lt;&lt; sizeof(char) &lt;&lt; ...

    算法分析与设计习题集答案

    36、 (组合问题)求出从自然数1,2,…,n中任取r个数的所有组合。 37、 传教士与野人渡河问题。有M个传教士和M个野人准备渡河,船一次最多载2人,任何时刻野人数不能多于传教士数,但允许全部为野人。编写算法给出...

    DNA序列的k_merindex问题数模论文.doc

    在实际应用中,考虑到内存限制(例如8GB),需要评估所设计的索引方法能够支持的最大k值。更大的k值意味着更多的哈希计算和更大的索引,这可能会超出内存限制。因此,需要进行性能分析,找出在满足存储限制的同时,...

    c#-Leetcode面试题解之第4题寻找两个正序数组的中位数.zip

    其中第四题是“寻找两个正序数组的中位数”。这道题目旨在考察开发者的算法理解能力、数据结构运用以及高效解决问题的能力。在C#环境下,解决这个问题需要对数组操作、排序算法和中位数计算有深入的理解。 首先,...

    OpenCV中的大津法取阈值程序代码.doc

    ### OpenCV中的大津法取阈值程序代码详解 #### 一、大津法(Otsu’s Method)概述 大津法,也被称为最大类间方差法,是一种常用的全局阈值选取方法,用于图像二值化处理。其基本思想是通过最大化前景和背景之间的...

    2017计算机专业秋招找工作资料文档

    ### 找第K大的数 在实际应用中,快速排序可以用来寻找未排序数组中的第K大的元素。这一功能可以通过修改快速排序的partition函数并利用递归来实现。 **Java 实现代码示例** ```java public static int ...

    整理后java开发全套达内学习笔记(含练习)

    byte &gt; short &gt; int &gt; long &gt; float &gt; double char 」 注意:默认类型转换(自动类型提升)会丢失精度,但只有三种情况: int&gt;float; long&gt;float; long&gt;double. 看一下他们的有效位就明白。 二进制是无法精确的...

    (重要)AIX command 使用总结.txt

    &lt;1&gt; mklv -y lvinformix -c 2 rootvg 64 //在卷组rootvg上创建逻辑卷lvinformix, 大小为64(LP)×16M=1G, 磁盘镜像需用-c参数指定副本数 &lt;2&gt; crfs -v jfs -d lvinformix -m /opt/informix //在lvinformix上创建文件...

    数字电路综合实验

    **解析:** 对于n个变量,可以构成2^n个最大项或最小项,因为每个变量都有两种状态(0或1),所有可能的组合共有2^n种。 **26. 组合逻辑电路中的险象是由于(C)引起的。** **解析:** 组合逻辑电路中的险象通常是...

    程序员二进制计算器 v1.36

    当结果&gt;=1K且&lt;1M时,以K为单位输出,例如: %sz 123456.789 = 120.563271K 当结果&gt;=1M且&lt;1G时,以M为单位输出,例如: %sz 536870912 = 512.000000M 当结果&gt;=1G且&lt;1T时,以G为单位输出,例如: %sz 0x...

    大厂面试系列二.pdf

    在有内存限制的情况下找出10G个整数中的中位数问题,可以考虑使用“中位数的中位数”算法,该算法可以将复杂度降低到O(N)。 时分秒针在一天之内重合的次数,可以通过分析它们的运动规律计算得出。 将多个集合合并...

    实验4分治算法设计技术的应用.doc

    1. 将 n 个元素放在顺序表中,然后取第 k 个元素作为标准 m,把 n 个元素重新排列,分成两个区间:小于标准 m 的元素区间 1~j,大于标准 m 的元素区间j+1~n。 2. 在情况 2 和 3 中继续寻找第 k 个元素。 八、实验...

    topn.zip_数学计算_Unix_Linux_

    总的来说,解决"从N个整数中取最大的n个数据"的问题,不仅涉及到算法设计,还涵盖了数据结构(如堆)、排序理论和编程语言(如C++)的运用,是面试和实际工作中常遇到的经典问题。在Unix/Linux环境下,我们可以通过...

    2015_2016学年八年级数学上册第四章一元一次不等式组同步测试新版湘教版

    - 对于形如2^mx-n&lt;0的不等式,解的整数个数取决于m和n的关系,通过调整m的值可以控制整数解的范围。 6. **方程与不等式的结合**: - 方程的解可能会与不等式有关,比如题目中关于x的方程2x+9k=x-6的解如果是负数...

    ACM算法整合

    - 计算组合数C(N,R),即从N个不同元素中选取R个元素的组合数。 - **最大1矩阵** - 寻找一个矩阵中最大大小的全为1的子矩阵。 - **约瑟夫环问题(数学方法)** - 约瑟夫问题是一种经典的数学问题,涉及按特定规则...

    高中三年级年级7月月考(理科)数学卷.doc

    7. 三角形数阵:数阵中的数呈现三角形排列,找出第n行第k个数的规律,通常涉及到等差数列或等比数列的知识。 8. 排列组合:将5名志愿者分配到3个场馆,每个场馆至少一人,可以使用隔板法或排列组合解决。首先将志愿...

    《数字电子技术(高起专)》作业考核试题与答案.docx

    题目中给出了四个选项,正确答案是D. 16mA,这表示当与非门的输出为0时,它能驱动的最大负载电流是16mA。 2. 逻辑函数F=(ABC+CD)'的化简与取值:这个逻辑表达式是一个复合函数,通过布尔代数或卡诺图化简可以分析其...

    ACM/ICPC算法大全(c语言)

    - 组合数是指从n个不同元素中选取r个元素的组合数,本节介绍了其计算方法。 - **最大1矩阵** - 介绍了如何求解最大1矩阵问题。 - **约瑟夫环问题(数学方法)** - 约瑟夫环问题是一种经典的数学问题,本节介绍...

Global site tag (gtag.js) - Google Analytics