2019独角兽企业重金招聘Python工程师标准>>>

/* 输入 n 个整数,输出其中最小的 k 个* TreeMap 和 TreeSet 是 Java Collection Framework 的两个重要成员,* 其中 TreeMap 是 Map 接口的常用实现类,而 TreeSet 是 Set 接口的常用实现类* 。虽然 HashMap 和 HashSet 实现的接口规范不同,但 TreeSet 底层是通过 TreeMap 来实现的,因此二者的实现方式完全一样。而 TreeMap 的实现就是红黑树算法。*    1. 红黑树并不追求“完全平衡”——它只要求部分地达到平衡要求,降低了对旋转的要求,从而提高了性能*    2.AVL树是最先发明的自平衡二叉查 找树。在AVL树中任何节点的两个儿子子树的高度最大差别为一,所以它也被称为高度平衡树。查找、插入和删除在平均和最坏情况下都是O(log n)。增加和删除可能需要通过一次或多次树旋转来重新平衡这个树。*      3. MyComparator 不可以返回为0, 为0表示相等,TreeSet 里面只存唯一的数字*      因为我们使用  new MyComparator() 修改了她的默认排序规则*/public static  void findkmin(int[]  array, int k){TreeSet<Integer> kminset = new TreeSet<Integer>();for(int i = 0 ; i  < array.length; i ++){if(kminset.size() < k ){kminset.add(array[i]);continue;}if(array[i]  < kminset.first()){kminset.remove(kminset.last().intValue());// 假如  TreeSet<Integer> kminset = new TreeSet<Integer>(new MyComparator()); 是这样申请的// treesset 删除一个元素的时候必须删除最后一个,因为删除开始或者中间的一个会引起其排序不稳定,所以删除会失败// 因为我们使用  new MyComparator() 修改了她的默认排序规则kminset.add(array[i]);}}System.out.println("***************************************************");for(Integer in : kminset){System.out.print(in +" ");}System.out.println("\n***************************************************");
}

转载于:https://my.oschina.net/u/1388024/blog/877050

输入 n 个整数,输出其中最小的 k 个相关推荐

  1. c语言while输入n求n个奇数,任意输入n个整数,输出这n个数中的奇数个数和偶数个数.用while语句...

    C语言 输入n并输入n个数,输出这n个数中的所有奇数的乘积 #includevoidmain(){inti,n,arr[100],mul=1;printf("请输入n值:");sc ...

  2. 题8.3:输入10个整数,将其中最小的数与第一个数对换, 把最大的数与最后一个数对换。 写3个函数: ①输人10个数; ②进行处理; ③输出10个数

    题目 本题是谭浩强<C程序设计课后习题>题8.3. 题目: 输入10个整数,将其中最小的数与第一个数对换, 把最大的数与最后一个数对换. 写3个函数: ①输人10个数; ②进行处理; ③输 ...

  3. 输入10个整数,将其中最小的数与第一个数对换, 把最大的数与最后一个数对换。写3个函数:①输人10个数;②进行处理;③输出10个数。

    输入10个整数,将其中最小的数与第一个数对换, 把最大的数与最后一个数对换. 写3个函数: ①输人10个数; ②进行处理; ③输出10个数. 解题思路: 在进行数值逐个比较的同时找到最小值的空间地址以 ...

  4. 华为机试HJ58:输入n个整数,输出其中最小的k个

    作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 输入n个整数,输出其中最小的k个. 本题有多组输入样例,请使用循环读入,比如whil ...

  5. ACMNO.18 C语言-选择排序 用选择法对10个整数从小到大排序。 输入 10个整数 输出 排序好的10个整数

    题目描述 用选择法对10个整数从小到大排序. 输入 10个整数 输出 排序好的10个整数 样例输入 4 85 3 234 45 345 345 122 30 12 样例输出 3 4 12 30 45 ...

  6. ACMNO.7 输入两个正整数m和n,求其最大公约数和最小公倍数。 输入 两个整数 输出 最大公约数,最小公倍数 样例输入 5 7 样例输出 1 35

    题目描述 输入两个正整数m和n,求其最大公约数和最小公倍数. 输入 两个整数 输出 最大公约数,最小公倍数 样例输入 5 7 样例输出 1 35 来源/分类 C语言 示例照片: 设计思路: 本题最难的 ...

  7. 输入10个整数将其中最小的数与第1个数对换,把最大的数与最后一个数对换

    标题 (指针处理)输入10个整数将其中最小的数与第1个数对换,把最大的数与最后一个数对换 方法:先找出10个数中的最小数,把它和第1个数交换,然后再重新找10个数中的最大数,把它和最后一个数交换. # ...

  8. C语言输入三个整数输出其中最小值

    #include<stdio.h> int main() { int a[3],i,t; printf("请输入三个整数:\n"); for(t=0; t<3; ...

  9. python - 输出最大/最小的 k 个元素的索引

    K = 4 a = np.array([0, 8, 0, 4, 5, 8, 8, 0, 4, 2]) # 最大的 k 个元素的索引 print(np.argpartition(a, -K)[-K:]) ...

最新文章

  1. 兰艳艳:SIGIR十年趋势(附视频)
  2. Nginx实现静态代理,负载均衡,前后端分离
  3. 成功解决 \tensorflow\…\datasets\mnist.py:290: DataSet.__init__ (from tensorflow.contrib.learn.python.lea
  4. 【Java代码】坐标系说明+WGS84\GCJ02\BD09坐标系转换工具+Java坐标系转换及验证源代码分享(粘贴可用)
  5. Gitlab添加SSH密钥的解决办法
  6. python 赋值方法_基于Python List的赋值方法
  7. 【文末有福利】5个字极简入门朴素贝叶斯模型
  8. vue2实践揭秘pdf_《Vue2实践揭秘》源码
  9. js 正则是否包含某些字符串_js 判断字符串中是否包含某个字符串(转载)
  10. Python基础——zip、lambda、map
  11. vs2013连接数据库
  12. 使用EEMD时报错:TypeError: ‘module‘ object is not callable
  13. 如何系统学习知识图谱-胖子哥的实践经验分享
  14. Tyvj P1288 飘飘乎居士取能量块
  15. 数据库设计 - 01外卖配送系统
  16. 基于Impala的网易有数BI查询优化总结
  17. 在你的应用里使用Jetty嵌入式
  18. 延迟微分方程(matlab求解)
  19. 【电子通识】烙铁使用方法
  20. ogre 开发范例大全(2)

热门文章

  1. 中小微企业谋定发展-国情讲坛·周荣江: 破解民营经济融资难
  2. openresty开发系列26--openresty中使用redis模块
  3. Python IDLE 无法启动
  4. Convert AS400 Spool to PFD Tools – PDFing
  5. LA 4254 Processor 处理器 【二分 贪心 优先队列】
  6. 15条最重要且最基本的SEO优化Tips和技巧
  7. equals 与==的不同
  8. PMCAFF出品|十一月30篇爆款文章合集,干货、技能、内涵齐飞,总有一款适合你
  9. 马化腾内部分享:三个问题说透如何做产品
  10. 【干货】产品经理常忽略的用户研究的四大误区