取出数组第一大和第二大元素
- # 取出数组最大的元素
- function getMax( $arr ){
- if( !is_array($arr) ){
- exit('参数必须是数组');
- }
- if( count( $arr ) == 0 ){
- exit('数组不能为空');
- }
- if( count( $arr ) == 1 ){
- return array_shift( $arr );
- }
- $max = 0;
- foreach( $arr as $key => $value ){
- if( $max < $value ){
- $max = $value;
- }
- }
- return $max;
- }
- # 取出第二大的元素
- function getTwoMax( $arr ){
- if( !is_array($arr) ){
- exit('参数必须是数组');
- }
- if( count( $arr ) == 0 ){
- exit('数组不能为空');
- }
- if( count( $arr ) == 1 ){
- return $arr ;
- }
- $max = 0;
- $two = 0;
- foreach( $arr as $key => $value ){
- if( $max < $value ){
- $two = $max;
- $max = $value;
- }else{
- if( $max != $value ){
- if( $two < $value ){
- $two = $value;
- }
- }
- }
- }
- return [ 'max' => $max , 'twoMax' => $two ];
- }
- //$arr = [ ];
- //$arr = array_pad( $arr , 81 , 0 );
- $arr = [ 99,1000,1000 ,1,10,5,25,80,35,70,27,999,25,25 ];
- # 桶排序
- function bucketSort( $arr ){
- $max = getMax( $arr );
- $i = 0 ;
- $arr2 = [];
- while( $i <= $max ) {
- $arr2[$i] = 0;
- $i++;
- }
- foreach( $arr as $k => $v ){
- $arr2[$v]++;
- }
- # 正序
- /**foreach( $arr2 as $key => $value ){
- while( $value ){
- echo $key , ' , ';
- $value --;
- }
- }*/
- # 倒序
- while( $max ){
- while( $arr2[$max] ){
- echo $max , ' , ';
- $arr2[$max] --;
- }
- $max--;
- }
- }
取出数组第一大和第二大元素相关推荐
- 求解第二大元素——锦标赛算法(Tournament Algorithm)
问题 给定一个长度为的数组,请用比较次数小于的算法求出数组中的第二大元素. 求解 看到题目中的比较次数小于就知道不能先用一次循环找出最大元素,接着利用最大元素再一次循环找到第二大元素. 那么,应该怎么 ...
- python返回列表中最大和第二大的元素
设计一个函数返回传入的列表中最大和第二大的元素的值. 测试输入:[1,2,3,4,5,6] 预期输出:(5,6) 测试输入:[11,2,30,4,55,6] 预期输出:(30,55) 要求不破坏原来的 ...
- 写一个函数找出一个整数数组中,第二大的数
题目:写一个函数找出一个整数数组中,第二大的数. 算法分析: 1)假设数组中的前两个元素就是最大和第二大,即max和smax: 2)从数组的第二个元素开始遍历数组,当有元素大于max的时候,将max赋 ...
- 【锦标赛算法】找第二大元素FindSecond()
考虑找第二大元素,会想到调用两次Findmax()算法函数(推导可以参考上篇文章).先用Findmax()算法找出最大值,然后从L中删除max,再调用Findmax()找出剩下元素中的最大元素,就是输 ...
- 分治法——查找问题 —— 寻找一个序列中第k小的元素和查找最大和次大元素
查找问题: 问题一:寻找一个序列中第k小的元素 对于给定的含有n个元素的无序序列,求这个序列中第k(1<=k<=n)小的元素 分析思路: 假设无序序列存放在a[0 - n-1]中,若将a递 ...
- (分治法)查找最大和次大元素
这道题本来是C的源码,但是Java没有指针,不能在函数里修改参数的值,所以只能把两个变量放到一个1*2的数组里, 用可以改变数组元素值的方式来改变变量值! java里除了用final定义的变量,其他的 ...
- 选第二大元素python(分治)
给定n个元素,找出元素中的第二大元素.该问题如果用线性扫描的方法的话, 首先找出最大值,比较n-1次 然后从n-1个元素中找出最大值,比较n-2次 下面考虑设计一个选第二大元素的分治算法 1.将n个元 ...
- 求数组第二大元素 和 字符串拷贝的实现
int main() {int a[] = {5,100,32,45,21,67,32,68,41,99,13,71};//首先默认第一个成员和第二个成员就是最大和第二大int max = 0; // ...
- 找出最大和第二大的数PHP,2020-09-01 十大经典排序算法总结php为例
排序算法说明 1 .排序的定义 对一序列对象根据某个关键字进行排序. 2.术语说明 稳定 :如果a原本在b前面,而a=b,排序之后a仍然在b的前面: 不稳定 :如果a原本在b的前面,而a=b,排序之后 ...
最新文章
- R语言caret包构建xgboost模型实战:特征工程(连续数据离散化、因子化、无用特征删除)、配置模型参数(随机超参数寻优、10折交叉验证)并训练模型
- 物联网的四种计算类型
- 使用 Cockpit 方便地管理容器
- 八分音符(频率)卷积算子 Octave Convolution
- GIT : IDEA切换到某个tag
- PostGreSql学习笔记002---Navicat Premium中管理PostGreSql 错误:字段rolcatupdate 不存在
- 由脚本创建的新元素事件不触发和用的easyUI插件中的多选框不起作用的解决方法...
- 解决Invalid bound statement (not found): com.hengjun.mapper.UserMapper.selectByExample,
- larval PHP artisan命令
- Spring和Spring的配置
- 中南大学转专业计算机名单,中南大学2010级优秀本科生转专业名单
- Centos7 IOS镜像包下载
- 阿布扎比国家石油公司与IBM合作试行区块链
- 串口设置波特率linux函数接口,Linux下串口编程之一:基础设置函数
- 华为交换机开启vlan接口流量统计功能
- 网络工程师操作学习指南
- 批量翻译软件-免费批量一键翻译软件
- 【转】神级代码注释 优秀的comment
- 杨强:从大数据到人工智能
- 春节“聊天宝”使用秘籍,轻松应对亲戚尬聊
热门文章
- 软件设计师2018下半年上午真题解析
- Java中如何使用转义转义字符?
- 一文搞懂异常检测中离群、异常、新类、开集、分布外检测异同
- 【TaI】GPU-based Grass Simulation with Accurate Blade Reconstruction
- 动手实验 CVE-2010-2883 Adobe Reader TTF字体SING表栈溢出漏洞
- 《Oracle内核技术解密》读书笔记(二)
- 意出望外的一次相遇|利楚初探 OceanBase
- 二分查找及查找左、右边界
- 信息与计算机科学专业毕业论文,《信息与计算机科学毕业论文》.doc
- 花 1 小时,开源设计 LoRa 继电器开关