![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
PHPerJiang
一只有理想的程序猿
展开
-
取模与取余运算
取模运算(“Modulo Operation”)和取余运算(“Complementation ”)两个概念有重叠的部分但又不完全一致。主要的区别在于对负整数进行除法运算时操作不同。取模主要是用于计算机术语中。取余则更多是数学概念。 区别: 模运算:计算结果值时,向负无穷方向舍入 余计算:计算结果值时,向0舍入 假设c=a%b,当a与b符号一致的时候,求模与求余运算的结果值一样,当a和b...原创 2018-08-14 09:11:30 · 3636 阅读 · 0 评论 -
归并排序算法【PHP实现】
排序算法:冒泡排序 选择排序 直插入排序 希尔排序 堆排序 归并排序 快速排序归并排序:稳定,时间复杂度为O(nlogn) ~O(nlogn) ,空间复杂度为O(n),是比快排稳定的排序算法function mergeSort($arr){ $size = sizeof($arr); if ($size <= 1){ return $arr; } $...原创 2019-05-20 15:29:45 · 136 阅读 · 0 评论 -
LeeCode中的123Pattern(PHP实现)
<?php/** * Created by PhpStorm. * User: jiangyu01 * Date: 2018/10/8 * Time: 14:43 * Title:给定一个整数序列:a1, a2, ..., an,一个132模式的子序列 ai, aj, ak 被定义为:当 i < j < k 时,ai < ak < aj。 * 设计一个...原创 2018-10-08 15:50:29 · 303 阅读 · 0 评论 -
LeeCode中的threeSum(PHP实现)
<?php/** * Created by PhpStorm. * User: jiangyu01 * Date: 2018/10/3 * Time: 14:53 * Title:给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c , * 使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。 */$nums = [...原创 2018-10-08 11:26:16 · 136 阅读 · 0 评论 -
LeeCode中的maxProfit(PHP实现)
<?php/** * Created by PhpStorm. * User: jiangyu01 * Date: 2018/10/8 * Time: 15:54 * Title:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 * 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。 * 注意你不能在买入股票前卖出...原创 2018-10-12 16:21:12 · 182 阅读 · 0 评论 -
LeeCode中的ContainerWithMostWater(PHP实现)
<?php/** * Created by PhpStorm. * User: jiangyu01 * Date: 2018/10/2 * Time: 17:11 * Title: * 给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。 * 在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。...原创 2018-10-03 14:27:10 · 180 阅读 · 0 评论 -
LeeCode中的RegularExpressionMatching(PHP实现)
<?php/** * Created by PhpStorm. * User: jiangyu01 * Date: 2018/10/1 * Time: 15:27 * Title : * 给定一个字符串 (s) 和一个字符模式 (p)。实现支持 '.' 和 '*' 的正则表达式匹配。 * '.' 匹配任意单个字符。 * '*' 匹配零个或多个前面的元素。 * s 可能为...原创 2018-10-02 16:58:16 · 124 阅读 · 0 评论 -
LeeCode中StringtoInteger(PHP实现)
<?php/** * Created by PhpStorm. * User: jiangyu01 * Date: 2018/10/1 * Time: 14:51 * Title: * 实现 atoi,将字符串转为整数 * 当字符串中的第一个非空字符序列不是个有效的整数;或字符串为空;或字符串仅包含空白字符时,则不进行转换。 */$string = ' -42030...原创 2018-10-01 15:01:00 · 146 阅读 · 0 评论 -
LeeCode中ReverseInteger(PHP实现)
<?php/** * Created by PhpStorm. * User: jiangyu01 * Date: 2018/10/1 * Time: 14:09 * Title: * 给定一个 32 位有符号整数,将整数中的数字进行反转。 * 假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231 − 1]。根据这个假设,如果反转后的整数溢出,则...原创 2018-10-01 14:47:05 · 241 阅读 · 0 评论 -
LeeCode中的MedianofTwoSortedArrays(PHP实现)
<?php/** * Created by PhpStorm. * User: jiangyu01 * Date: 2018/10/1 * Time: 11:13 * Title: * 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。 */$arr1 = range(3,9); //构建有序数组$arr2 = range(4,12);/...原创 2018-10-01 13:59:08 · 119 阅读 · 0 评论 -
LeeCode中的Two Sum算法(PHP实现)
<?php/** * Created by PhpStorm. * User: jiangyu01 * Date: 2018/10/1 * Time: 10:06 * Title: * 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 * 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。 */$arr = [2, 7, 11, 15 ,3, ...原创 2018-10-01 10:49:57 · 522 阅读 · 0 评论 -
归并排序算法
<?php//归并排序算法//比快排更稳定,主要思想是分治法$arr = range(0,20);shuffle($arr);function arrSort($arrA, $arrB){ $arrC = []; while(count($arrA) && count($arrB)){ //比较有序数组中的值并弹出 ...原创 2018-08-28 09:15:54 · 124 阅读 · 0 评论 -
PHP实现快速排序算法
<?php//快速排序算法//创建数组并打乱数组$arr = range(1,20);shuffle($arr);function QuickSort($arr = array()) { $size = sizeof($arr); if ($size<=1) { //如果数组大小小于等于1返回该数组 re...原创 2018-08-18 18:06:14 · 2095 阅读 · 0 评论 -
PHP实现插入排序算法
<?php//插入排序算法,插入前的数组是有序的//创建有序数组$arr = range(1,20);function InsertSort($arr = array(), $insert = '') { array_push($arr, $insert); //将被插入的数插入数组的末端 $size = sizeof($arr); ...原创 2018-08-18 17:34:17 · 151 阅读 · 0 评论 -
PHP实现选择排序算法
<?php//选择排序算法//创建数组并打乱顺$arr = range(1,20);shuffle($arr);function SelectSort($arr = array()) { $size = sizeof($arr); //获取数组长度 for ($i=0; $i<$size; $i++) { //外层循环控制...原创 2018-08-18 17:09:52 · 1336 阅读 · 0 评论 -
PHP实现冒泡排序算法
<?php//冒泡算法,由小到大排序//创建数组并打乱顺序$arr = range(1,20);shuffle($arr);function BubbleSort($arr = array()) { $size = count($arr); //计算数组长度 for ($i=0; $i<$size; $i++) { //外层循环控制当前...原创 2018-08-18 16:06:18 · 190 阅读 · 0 评论 -
关于冒泡排序算法优化
最普通的冒泡排序算法function bubbleSort($arr){ $size = count($arr)-1; for ($i = 0;$i <= $size ; $i++){ for ($j = $size-1;$j >= $i;$j--){ if ($arr[$j] > $arr[$j+1]){ $tmp = $arr[$j]; $...原创 2019-05-18 16:48:42 · 126 阅读 · 0 评论