
算法编程
文章平均质量分 83
xubin.nic
嘿嘿大是大非
展开
-
PHP 实现对正整数数组元素拼接后值最大
思路:跟普通的排序算法不同的是,排序的规则的调整。需要拼接两个字符串并比较大小。将拼接后的大的结果放到前面。function findTheMax($arr){ $size = count($arr); if ($size <= 1) { return $arr; } $mid = ceil(($size - 1) / 2); $left = array_slice($arr, 0, $mid); $right = a..原创 2020-09-10 21:09:33 · 421 阅读 · 0 评论 -
php 实现链表的排序
leetcode 148: 排序一个无序链表说明:1. 通过快慢指针找到链表的中间位置,low 表示右边链表;2. 左边链表理解起来就比较费事了。左边链表:因为对象赋值是引用拷贝。所以,当 low 变化的时候,head 会记录变化,通过 low->next = null 终止变化,得到左链表。2. 然后再通过有序链表的合并完成排序/** * Definition for a singly-linked list. * class ListNode { * pub.原创 2020-09-01 22:34:39 · 532 阅读 · 0 评论 -
php 实现 2n 个无序的数,n 个奇数,n 个偶数,奇数在奇数位,偶数在偶数位--两种解法
2n 个无序的数,n 个奇数,n 个偶数,实现一个算法:奇数在奇数位,偶数在偶数位这个题,在面试的过程中,面试官提示我可以参考 链表的有环的方法,有环的判断是有两个指针,一个快 fast 指针,一个慢 slow 指针,设置步长相差一个。但是,但是,但是,我没有做出来。。。。下来后,参考了别人的解法:一个数组有2n个元素,其中有n个奇数、n个偶数,数组无序,写一个算法使得奇数位置放置奇数,偶数位置放置偶数。我自己手动实现了一下。代码入下:function revertTheNum($ar.原创 2020-08-28 20:53:31 · 500 阅读 · 0 评论 -
php 实现链表的反转--迭代和递归
1. 递归:思路说明请看 代码注释/** * Definition for a singly-linked list. * class ListNode { * public $val = 0; * public $next = null; * function __construct($val) { $this->val = $val; } * } */class Solution { /** * @param ListNode $h原创 2020-08-17 21:22:26 · 522 阅读 · 0 评论 -
PHP 最大连续子数组 最长回文子串
1. 数组最大连续子数组/** * 最大连续子数组 * **/$arr = [6,-3,-2,7,-17,1,7]; function consistArr($arr) { $tmp = $max = $arr[0]; $i = 1; $size = count($arr); while($i < $size) { if ($tmp > 0) { $tmp += $arr[$i]; } else { $tmp = $arr[$i];原创 2020-08-06 09:59:11 · 403 阅读 · 0 评论 -
php 实现快速排序算法 PHP 无序数组求中位数
php 实现快速排序算法:第一种:1. 选取第一个元素为基数,分别从右(high)往左(high--)查找,找到一个比基数小的数,进行位置交换, 直到 low == high,结束一次排序;然后从 左 往右查找,找到一个比基数大的数,进行位置交换,直到 low == high,结束一次排序;最后将基数 放到 low 位置上。2. 此时的 low 值代表一次排序后 基数所在的数组下标位置。3. 通过递归进行 左右子数组排序,直到 low == high代码如下:$arr = [49,原创 2020-07-04 22:34:22 · 923 阅读 · 0 评论 -
PHP中各种排序算法(时间复杂度等)
时间复杂度为O(n2)的算法:插入排序:(先把要排序的数,拿出来,然后遍历是否存在大于该数的,有移动位置,否,继续往后)$n = count($nu);for($i =1;$i<$n;$i++){ $temp = $nu[$i]; for($j=$i-1;$j>=0 && $temp<$nu[$j];$j--) { $nu[$j+1] = $nu原创 2018-01-28 11:50:13 · 2832 阅读 · 0 评论 -
排序算法和查找算法--PHP代码实现方式
由于对这些算法的概念比较抵触,很难理解痛彻。但是我对代码还是很上手的,通过看代码,我就能清晰明了的知道原理和思想。1、归并排序:下面代码可以直接运行。摘抄自:常用的排序算法(四)--归并排序(PHP实现)。其中原文中,理论部分讲解有问题。思路:分治思想。选取中间值,进行分隔。分为左边数组和右边数组。递归的调用该方法,目的在于一直分隔数组,直到当前数组只有一个元素为止。时间复杂...原创 2019-06-27 00:00:22 · 312 阅读 · 0 评论