zl程序教程

您现在的位置是:首页 >  后端

当前栏目

【算法】PHP实现经典算法(下)

2023-09-27 14:29:21 时间

前几天,我们通过PHP实现了不同的排序算法,并比较算法对应的耗时。
【算法】PHP实现经典算法(上)

下面我们来实现下列算法


//如果比左子树小并且在左右子树的右面,边界调整到左侧 if($i $heapsize $left $heapsize $array[$left] $array[$i] ){ $max = $left; //如果比右子树小并且都小于要构建的数组长度,边界调整到右侧 if($i $heapsize $right $heapsize $array[$right] $array[$max]){ $max = $right; //如果经过两次调整后,要调整的数组不是最大值 if($i != $max $i $heapsize $max $heapsize){ //就交换对应的位置,并再次进行整理节点 swap($array[$i],$array[$max]); build_heap($array,$max,$heapsize); * 对堆进行排序 * @param $array 要排序的数组 * @param $heapsize 数组的长度 function sortHeap( $array,$heapsize){ while($heapsize){ //长度逐步递减0 //首先交换第一个元素和最后一个元素的位置 swap($array[0],$array[$heapsize-1]); $heapsize = $heapsize -1; build_heap($array,0,$heapsize); //整理数组的第一个的元素的位置,长度为逐步递减的数组长度 * 创建堆 * @param $array * @param $heapsize function createHeap( $array,$heapsize){ $i = ceil($heapsize/2)-1; //找到中间的位置 for( ; $i =0 ;$i-- ){ //从中间往前面整理堆 build_heap($array,$i,$heapsize); * 堆排序主函数 function Heapsort($array){ $heapsize = count($array); createHeap($array,$heapsize); sortHeap($array,$heapsize); return $array;
$straightselectsort_need_time = $straightselectsort_end_time - $straightselectsort_start_time; print_r("直接选择排序耗时:" . $straightselectsort_need_time . " br / ");
bitmap算法的PHP实现,快速去重排序,数据压缩储存 因为电路的逻辑只有0和1两个状态,这里的0和1并不是数字的0和1,0和1是表示两种不同的状态,0表示低电平,1表示高电平。因为计算机是由无数个逻辑电路组成的,只能根据0和1的无限位数和组合来表达信息。 电脑只认识0和1这两个数字,所有的数据在电脑中都是以0和1组成的编码存储的,这样的编码叫做二进制。一个0或一个1就叫做一个位 最初的计算机性能和存储容量都比较差,所以普遍采用4位BCD编码(这个编码出现比计算机还早,最早是用在打孔卡上的)。
PHP算法练习十一:检查两个给定整数是否在指定范围内 PHP算法系列今天继续~那么在上一篇《PHP算法练习十:计算圆的半径和中心坐标》中给大家介绍了怎么用PHP计算圆的半径和中心坐标,感兴趣的朋友可以学习了解一下~ →推荐:《PHP算法练习系列大汇总(持续更新~)》 本文则给大家介绍怎么用PHP判断两个给定的整数是不是在指定范围内! 具体问题描述是“如何编写一个PHP程序来检查两个给定的整数是否在100..200范围内(包括 100..200)”? 相信大家很快就能写出来这种实现方法,下面是我给出的方法,大家可以参考一下: PHP代码如下:
小雨雨hi CSDN学院讲师、博客专家,专注服务端开发,服务端架构演变,区块链技术研究,项目管理,热衷学习前沿技术,以及日常的技术分享,曾经历过创业技术合伙人角色。