$arr = array(3,5,7,8,1,2,456,78,...101,2345,456);

类似上述数组,共有十万个元素,让我们取出TOP5,下面是我的解法,先上代码再讲解思路

function topk($arr)

{

//取十万数组的前五个元素组成升序数组

$result = sort(array_slice($arr,0,5));

for($i=5;$i<100000;$i++){

for($j=4;$j>=0;$j--){

if($result[$j]

$result[$j] = $arr[$i];

unset($result[0]);

}

}

}

}

具体思路是,拿出前五个元素组成升序队列,将数组剩下的元素与该升序队列进行循环比较,若大于小数组任一元素,则替换该元素,并删除小数组最小的元素,这种处理方法复杂度最差的情况是这9555次循环里面每个元素与小数组每个元素都比较了5次,也就是最多是 5N

还有一种思路呢,是按冒泡排序,十万数字走五次,取最后五个元素就是数组的top5,复杂度是 5N

-----------------------------------------------END-------------------------------------------------------------------------------

如果有发现错误的地方麻烦留言告知,让我能及时修正哟   感谢~

原文:https://www.cnblogs.com/gyrgyr/p/10741789.html

php面试 数组最大数,PHP 十万数字不同数组取最大的5个 (经典面试题topK) (原)相关推荐

  1. 求数组最大数,该数为数组中某两个数相加

    题目: 百度笔试:在一个正整数集合S中,找出一个最大数C,使得C=A+B,其中A和B也是S种的元素. 思想: 首先,我们将数组从小到大进行快速排序.其次: 1.将最后一个数设为最大数设定为S: 2.用 ...

  2. php 索引数组应用实例,php数字索引数组实例用法总结

    PHP数组的类型-数字索引数组什么是PHP数字索引数组?这是最常见的数组类型,绝大多数编程语言都有数字索引数组PHP 数字索引数组一般表示数组元素在数组中的位置,它由数字组成,下标从 0 开始,数字索 ...

  3. php 数组中连续的数字,php数组中最近的次要数字

    我有一个数组,例如(它可以是任何东西,但它已经订购): array(1,7, 12, 18, 25); 我需要找到最接近该数组的数字. 以上数组: $needle = 11; 我想要检索的数组中的数字 ...

  4. 努力前端【LeetCode-10】448. 找到所有数组中消失的数字 442. 数组中重复的数据(中等) 41. 缺失的第一个正数(困难) [鸽笼原理,数组,Map,类似No.645]

    文章目录 题目描述-448 一.哈希Map 二.空间复杂度的优化--鸽笼原理 三.总结 题目描述-442 一.还是hashMap 二.继续鸽笼原理 题目描述-41 一.基础方案 二.数组模拟Map 题 ...

  5. python输入数字成数组_python 怎么把数字加入数组

    python怎么输入一个数组矩阵 python 原来需要输入值给数组怎么改成直接给数组赋小编蓝色的两行想要弄成固定的值要怎么弄啊没什么好遗憾,本就是你情小编愿,聚散离合都在情理之中. 牛客网 pyth ...

  6. 【强烈推荐】《剑指Offer:名企面试官精讲典型编程题》一书中IT名企经典面试题

    各位程序猿: <剑指Offer> 一书源自该书作者何海涛坚持更新与编写的博客( http://zhedahht.blog.163.com/ ),该博客收集整理了大量如微软.Google等知 ...

  7. 何海涛——《剑指Offer:名企面试官精讲典型编程题》一书中IT名企经典面试题

    <剑指Offer> 一书源自该书作者何海涛坚持更新与编写的博客( http://zhedahht.blog.163.com/ ),该博客收集整理了大量如微软.Google等知名IT企业的经 ...

  8. LeetCode448-找到所有数组中消失的数字(原地数组)

    因为题目数组有范围1 ≤ a[i] ≤ n 找到所有在 [1, n] 范围之间没有出现在数组中的数字 就是说,这个数组,如果数字是全的话,应该可以表示为 [1,2,3,4,5,6.........., ...

  9. 微信小程序 - 数组 push / unshift 追加后数组返回内容为数字(数组添加后打印结果为 Number 数值类型)

    前言 假设一个空数组,通过 push 方法追加了一个项,控制台打印的结果竟然是 Number 数值. 例如,以下微信小程序代码: // 源数组 var arr = [] // 追加数据 var tem ...

最新文章

  1. 【基础知识】win10常用快捷键
  2. TOP Server教程:预览非标准协议创建的未来
  3. mysql variables_通过什么命令能够改变mysql的variables的变量里的值?
  4. sourceinsight如何显示完整文件路径
  5. OpenGL Multi Texture多重纹理的实例
  6. STL常用的遍历算法
  7. 前端代码是怎样智能生成的?
  8. 每日记载内容总结22
  9. Dictionary里使用struct,enum做key
  10. C# winfrom打印技术初探
  11. ubuntu 远程桌面及Qt安装
  12. 时任上海来伊份互联网事业群总裁王戈钧 :传统企业(线上+线下)移动互联网改造...
  13. 为WPF, UWP 及 Xamarin实现一个简单的消息组件
  14. python判断字符类型编程_Python检测数据类型的方法总结
  15. python库--tensorflow--数学函数
  16. Ubuntu18.04 下面安装docker
  17. FineReport10.0功能说明
  18. CorelDraw软件快速入门
  19. android标题白色_android主题Theme.Holo.Light下如何设置程序的标题字体颜色为白色
  20. 《英语语法新思维 基础版1》读书笔记(二)

热门文章

  1. php实现access数据库连接,PHP实现Access数据库连接
  2. 源码编译altas mysql_Atlas的安装
  3. django项目转pyc_Python自动化运维系列:Django搭建小博客
  4. JavaSE----异常处理
  5. ideadebug热更新_Spring Boot 在IDEA中debug时的hot deployment(热部署)
  6. 学前教育与计算机,计算机与幼儿教育
  7. JVM 可设置最大内存
  8. MySQL截取字符串的方法-substring_index
  9. Android开发笔记(八十四)使用Properties读写属性值
  10. greasyfork脚本怎么取消_更新了js脚本,回答一些常见问题