- 博客(22)
- 收藏
- 关注
原创 redis源码--SDS结构解析
众所周知,redis使用的是SDS代替C字符串处理,其原因主要有三见下。目录1 特点2 SDS结构3 结构函数4 紧凑型头结构5 总结1 特点C语言特点:1 O(n)字符串长度访问复杂度。2 不能存储带\0的二进制字符串。3 内存访问碎片严重。SDS特点:1 O(1)字符串长度访问。2 自定义结构,封装自己字符串处理函数,能处理\0。3 预分配空间和惰性回收减少系统调用和内存碎片。2 SDS结构SDS存储数据还包含了元信息也就是
2022-04-22 12:02:16
1086
原创 笛卡尔积递归
笛卡尔积3个JS版本版本一性能好些,版本二性能差些,版本三性能和版本1差不多版本一递归入参:array:当前的数组result:结果集递归结束条件:array长度为0function cartesian(array, result){ if(array.length === 0){ return [resul...
2019-07-28 18:13:05
673
原创 树节点查找
查找树的子节点$tree = [ 'id' => 0, 'name' => 'a', 'child' => [ [ 'id' => 1, 'name' => 'b', 'child' => [ ...
2019-03-24 18:03:22
1078
原创 开方函数手动实现
曾经面试让手动实现保留2位小数的函数,现在想来将其发出来(排版可能不好,因为csdn体验度本来就差)实现思想:利用二分法找整数,循环迭代找小数。例如:111开方,保留两位小数。(10+a)^2 = 111a^2 + 2 * 10 * a = 11a = 0.55 - a^2 / 20因为0<a<1-0.05<-a^2/2...
2019-03-17 15:02:22
1937
原创 收集3中目录创建方式
目录创建方式1:从尾到头,递归找到存在的目录位置,依次创建下一级目录。function CreateDir($dir){ if(dirname($dir) == $dir) return false; if(!is_dir($dir)){ if(!CreateDir(dirname($dir))){ ...
2018-07-13 00:26:10
152
原创 10进制转化为36进制
不多说,下面是代码,10进制转化为36进制。function getDex236($value){ static $arrMap = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']; $str = ''; if($va...
2018-05-29 21:51:26
6937
原创 tp3结构应用和模块区分
1.在tp3中可自定义目录结构及其引用方式只需要在指定的应用配置中配置即可config文件中可添加AUTOLOAD_NAMESPACE,AUTOLOAD_NAMESPACE //自动加载命名空间,例如:array('Addons' => './Addons/')形式。/Addons/是相对根目录的目录。这里TP3可支持多应用开发,其中多应用是指像Applicati
2017-11-26 17:24:46
871
原创 关于$_SERVER中的PHP_SELF、REQUEST_URI以及SCRIPT_NAME的区别
文章主要引用于:https://www.cnblogs.com/zcy_soft/archive/2010/10/16/1853239.html1.实验环境:需要开启appache的rewrite功能,在工程下创建index.php文件,然后在该工程下增加.htaccess文件——以单一入口文件形式访问。2.说明:现在很多站点都会引用单一入口原则,所以这是在单一入口基础上得到的结果。其
2017-11-26 13:52:35
1533
原创 杂谈设计师
对于web开发设计师来说,具有几大属性。页面属性 页面内容距离 弹框 效果文字属性 行数 间距 大小图片属性 张数 大小表格属性 表头 表体 表尾动画属性 窗口宽度 显示效果我认为最重要的是常用的文字属性,它需要根据文字行数来确定页面的显示状态,因此需要考虑具体内容。以及未来的可能状态。客户发布内容时需要对内容限
2017-11-09 22:14:10
172
原创 求解数组中任意两个元素的和最接近某一个数
题意是这样的:求解一个数组中元素a和b,其和sum=a+b,sum最接近num的数两个。array是一个整型数组。其求解方式如下://求解数组中元素a和b,其和sum=a+b,sum最接近num的数两个。//求解思想是:对数组进行顺序排序,然后对数组中的每个数遍历每个数能求得一个最优值,然后对每对值大小sum与给出的这个数num做比较,找出绝对值相差最小的那个数。//以下程序是对以上的
2017-06-11 11:52:27
4574
原创 php含有闭包特殊使用
讨论写法getValues(...$attrib)含义。以下是一个获取$attribs数组键为value的值Edward复杂写法。这种算是自找虐吧。 $attribs = [ 'name' => 'first_name', 'value' => 'Edward' ];$ex = function ($t) use ($attribs) { /
2017-06-02 17:57:52
709
原创 php运算优先级情况
php运算优先情况(来自http://blog.youkuaiyun.com/u011650048/article/details/51454463),其中一个记录。$a = 3;$b = 5;if ($a = 3 || $b = 7) { $a++; $b++;}var_dump($a);//(bool)truevar_dump($b);//(int)6布尔值进行++,-
2017-04-25 16:01:18
340
原创 获取完数
完数定义是:完数是该数的所有分解的因数(除了自己本身外)之和与该数相等。6 = 1 + 2 + 3; 28 = 1 + 2 + 4 + 7 + 14.改方式是先获取一个数所有约数(除自己本身外)。//获取约数function getPerfectNum($num){ $tmp = [1]; $end = $num; for($i=2; $i < $end;
2017-04-23 22:07:25
336
原创 获取A-B数字之间的质数
获取某个数之间的质数。function is_prNum($num){ $end = $num; for($i=2; $i< $end; $i++) { if($num % $i == 0) { return false; } else {
2017-04-22 19:35:18
347
原创 将一个整数进行质数分解
对一个数字进行质数分解,方式如下,封装为了一个函数。这种函数执行效率比较高。原因是对质数的判定是采用二分中间压缩法。$num = 64534294354983;function getPrimeExplode($num, &$tmp){ if($num < 2) exit('the number is out of the range'); $end = $num;
2017-04-22 19:21:21
3293
原创 数字转中文汉字(php书写)
数字转换为汉字 前段时间,因为一个朋友提到了数字转化为汉字,开始我并不以为这有什么难度,但千一段时间想着自己动手写一下相关的算法,发现好像还是没那么容易,后来一下午过去了,试写了各种方式,但好像都不能很好地兼容,特别是0的处理。于是在网上搜索了一些资料,但好像并没能很好地解决这个0的问题,找了些相关代码见下。 class numberToChanise { p
2017-04-14 16:55:08
787
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人