算法
飞蓬058
PHP、Java、C菜鸟
展开
-
php实现折半查找
<?php//递归方式function bin_recur_search($arr,$val){ global $time; if(count($arr) >= 1){ $mid = intval((count($arr) - 1) / 2); $time++; if($arr[$mid] == $val){原创 2016-08-23 23:51:01 · 1369 阅读 · 0 评论 -
Github的清点对象算法
原文链接: https://github.com/fupengfei058/article-collection/blob/master/Github%E7%9A%84%E6%B8%85%E7%82%B9%E5%AF%B9%E8%B1%A1%E7%AE%97%E6%B3%95.md使用 Github 的时候,你有没有见过下面的提示?$ git clone https://github.com/to转载 2017-12-01 23:50:09 · 232 阅读 · 0 评论 -
一致性哈希算法(consistent hashing)
一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简 单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2P环境中真正得到应用。 一致性hash算法提出了在动态变化的Cache环境中,判定哈希算法好坏的四个定义:1、平衡性(B转载 2017-01-03 10:58:53 · 233 阅读 · 0 评论 -
字符串匹配算法
我想说一句“我日,我讨厌KMP!”。KMP虽然经典,但是理解起来极其复杂,好不容易理解好了,便起码来巨麻烦!老子就是今天图书馆在写了几个小时才勉强写了一个有bug的、效率不高的KMP,特别是计算next数组的部分。其实,比KMP算法速度快的算法大把大把,而且理解起来更简单,为何非要抓住KMP呢?笔试出现字符串模式匹配时直接上sunday算法,既简单又高效,何乐而不为?说实话,想转载 2016-07-24 12:53:25 · 470 阅读 · 0 评论 -
php实现快速排序
//快速排序function quick_sort($arr){ $len = count($arr); if($len <= 1) return $arr; $base_num = $arr[0]; $left_arr = array(); $right_arr = array(); for($i = 1;$i < $len;$i++){原创 2016-08-24 21:18:47 · 214 阅读 · 0 评论 -
php实现直接插入排序
//插入排序function insert_sort($arr){ $len = count($arr); for($i = 1;$i < $len;$i++){ for($j = $i - 1;$j >= 0;$j--){ //插入的元素较小,交换位置 if($arr[$i] < $arr[$j]){原创 2016-08-24 21:03:27 · 274 阅读 · 0 评论 -
php实现选择排序
//选择排序function select_sort($arr){ $len = count($arr); for($i = 0;$i < $len - 1;$i++){ //假设最小值为$i $min_val = $arr[$i]; //最小值的下标 $min_index = $i; for($j =原创 2016-08-24 17:34:57 · 265 阅读 · 0 评论 -
php实现冒泡排序
<?php//冒泡排序function bubble_sort($arr){ $len = count($arr); for($i = 0;$i < $len;$i ++){ for($j = 0;$j < $len - $i - 1;$j ++){ if($arr[$j] > $arr[$j+1]){ //交换顺序原创 2016-08-24 11:34:11 · 239 阅读 · 0 评论 -
php实现字符串匹配算法——sunday算法
<?php/* *@param $pattern 模式串 *@param $text 待匹配串 */function mySunday($pattern = '',$text = ''){ if(!$pattern || !$text) return false; $pattern_len = mb_strlen($pattern); $text_len = mb_原创 2016-08-14 14:10:11 · 1040 阅读 · 0 评论 -
平衡二叉树(AVL树)
AVL树是最先发明的自平衡二叉查找树。在AVL树中任何节点的两个儿子子树的高度最大差别为一,所以它也被称为高度平衡树。查找、插入和删除在平均和最坏情况下都是O(log n)。增加和删除可能需要通过一次或多次树旋转来重新平衡这个树。对二叉树的平衡调整过程,主要包含四种旋转操作:LL,LR,RR,RL 。LR由当前节点左儿子的一次RR旋转和当前节点的一次LL旋转构成。同理, RR由当前节点右儿子的一次L转载 2016-09-03 20:02:14 · 273 阅读 · 0 评论