php算法
文章平均质量分 78
lifushan123
这个作者很懒,什么都没留下…
展开
-
PHP 顺序查找和二分查找(也叫做折半查找)算法
//二分查找(数组里查找某个元素)bin_sch($array, $low, $high, $k){ if ($low <= $high){ $mid = intval(($low+$high)/2); if ($array[$mid] == $k) { return $mid; } elsei转载 2015-04-04 23:52:34 · 841 阅读 · 0 评论 -
测试评估:14种排序算法和PHP数组
在这篇文章里,我将向大家介绍用PHP写的排序算法的测试。以下是14种排序算法:快速排序计数排序梳排序堆排序归并排序希尔排序选择排序插入排序地精排序联合冒泡排序鸡尾酒排序冒泡排序奇偶排序使用标志的冒泡排序算法不是按字母排序,而是按照它们进行8千个元素排序时整体速度递减来排序。以下是用到的数组的大小:110020040060080010005000100001500转载 2015-05-03 23:40:11 · 520 阅读 · 1 评论 -
常用算法PHP版
你的位置: 首页 > 常用算法PHP版-面试必备常用算法PHP版-面试必备天涯 @ 编程算法 2012-10-18算法这个东西,研究起来的确很费劲,牵涉的东西太多。至于PHP程序员,能掌握最好,虽然实际工作中用的不是很多。不过,面试时必不可少。下面分享一些最常见的算法,用PHP如何实现。1、冒泡排序12转载 2015-05-03 23:28:42 · 447 阅读 · 0 评论 -
php 常用算法
//PHP冒泡排序function maopao($array){ if (!is_array($array) || count($array) return false; } for($i=0;$i for ($j=count($array)-1;$j>$i;$j--){ if ($a转载 2015-04-05 00:26:33 · 417 阅读 · 0 评论 -
PHP 程序员学数据结构与算法之《栈》
介绍“要成高手,必练此功”。要成为优秀的程序员,数据结构和算法是必修的内容。而现在的Web程序员使用传统算法和数据结构都比较少,因为很多算法都是包装好的,不用我们去操心具体的实现细节,如PHP的取栈操作array_pop,进栈操作array_push,都有指定的库函数,导致我们对基础算法的研究越来越少,最后成为一个工具的傀儡而已。所以我还是建议更多的coder从基础开始学习转载 2015-05-13 02:02:36 · 448 阅读 · 0 评论 -
PHP快速排序法(数组排序)与简单选择排序
//快速排序(数组排序)function quicksort($array) {if (count($array) <= 1) return $array;$key = $array[0];$left_arr = array();$right_arr = array();for ($i=1; $i<count($array); $i++){ if ($array[$i转载 2015-04-04 23:33:18 · 460 阅读 · 0 评论 -
PHP代码:基本数据结构和php内置函数
//--------------------// 基本数据结构//--------------------以下为引用的内容://二分查找(数组里查找某个元素)function bin_sch($array, $low, $high, $k){ if ($low $mid = intval(($low+$high)/2); if ($arr转载 2015-05-13 02:06:29 · 369 阅读 · 0 评论 -
求出在字符串S中包含字符串T的最小字符串
记得本科的时候算法课上看到过这个题目,当时没有做出来,今天做360笔试的时候竟然仍然没做出来,真蛋疼。回来研究了半天,我擦,两个小时做那么多题目,这个肯定做不出来。 题目: 大意是:给定一个字符串S:“BLFBFSYDLEAKLFBYM”,和一个关键字T:“LBY”,求出在S中包含T的最小字符串?那么应该求出最小字符串:“LFBY” 思路一:遍历T,再遍历S转载 2015-05-02 00:51:57 · 890 阅读 · 0 评论 -
PHP实现双向链表
由于需要对一组数据多次进行移动操作,所以写个双向链表。但对php实在不熟悉,虽然测试各个方法没啥问题,就是不知道php语言深层的这些指针和unset有什么注意的地方,贴出来让大家教育吧。效率没测试....求谅解~View Code PHP123456789101112131415161718转载 2015-05-01 00:31:03 · 1073 阅读 · 0 评论 -
PHP算法大全
这里是用PHP写的几个基础算法,算法的重要性貌似对于PHP程序员不怎么重要,其实是非常重 要的,经典名句:算法+数据结构=程序。作为一名真正的高级PHP程序员,我认为应该熟悉C,如果你想成为真正的程序员,请好好学C,学好数据结构与算 法。这里仅仅只是几个基础算法,还有很多东东要学……1、首先来画个菱形玩玩,很多人学C时在书上都画过,咱们用PHP画下,画了一半。思路:多少行for一次,然转载 2015-05-02 01:17:50 · 741 阅读 · 0 评论 -
PHP部分常见算法
输入一个1~1亿的数字,打印中文,注意特殊情况例如,输入7,打印七,123打印一百二十三<?php$CN = array("零","一","二","三","四","五","六","七","八","九");$UNIT = array(1=>"十","百","千","万");$str = $argv[1];$str = (double)$str;转载 2015-05-02 01:43:21 · 435 阅读 · 0 评论 -
PHP数据结构大全地址之->模拟静态队列
PHP数据结构大全->http://www.php1.cn/Search/?s_txt=PHP%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B9%8B1234567891011121314转载 2015-05-16 01:40:08 · 515 阅读 · 0 评论 -
海量处理题目
何谓海量数据处理? 所谓海量数据处理,其实很简单,海量,海量,何谓海量,就是数据量太大,所以导致要么是无法在较短时间内迅速解决,要么是数据太大,导致无法一次性装入内存。 那解决办法呢?针对时间,我们可以采用巧妙的算法搭配合适的数据结构,如Bloom filter/Hash/bit-map/堆/数据库或倒排索引/trie/,针对空间,无非就一个办法:大而化小:分而治之/hash映射转载 2015-05-01 00:10:15 · 727 阅读 · 0 评论 -
数据结构算法书籍推荐
学计算机的人是幸福的,因为在这个领域中有如此多的通俗易懂(相对来说)的经典好书,你需要做的只是坚持把它们一本一本读下去而已。在这里列出一些我看过或者准备看的算法书籍,以供参考。第一名 原书名:The Art of Computer Programming 中文名:计算机程序设计艺术作者:Donald E.Knuth 难度:★★★★★ 个人评价:★★★★★ 推荐程转载 2015-04-28 00:44:07 · 845 阅读 · 0 评论 -
php 二维数组排序算法函数
//二维数组排序, $arr是数据,$keys是排序的健值,$order是排序规则,1是升序,0是降序array_sort($arr, $keys, $order=0){if (!is_array($arr)){ return false;}$keys = array();foreach($arr as $key => $val){ $keys[$key转载 2015-04-04 23:54:01 · 512 阅读 · 0 评论 -
php冒泡排序法
function bubble_sort(& $arr){$number=count($arr);for($i=0;$i for($j=0;$j if($arr[$j]>$arr[$j+1]){ $tmp=$arr[$j]; $arr[$j]=$arr[$j+1]; $arr[$j+1]=$tmp; } }} }$str转载 2015-03-14 19:48:57 · 369 阅读 · 0 评论 -
php折半查找算法-递归实现和非递归实现
其实算法只是一种思想,用什么语言都一样,代码如下:一、递归实现:/*** 折半搜索算法* @param array $arr 已经排序好的数组* @param int $value 要查找的值* @param int $left 数组开始下标* @param int $right 数组结束下标* @return 返回要查找的值在数组里的下标,不存在时返回 – 1转载 2015-04-05 00:28:40 · 535 阅读 · 0 评论 -
使用PHP实现二分查找算法代码分享
二分查找又称折半查找,它是一种效率较高的查找方法。 第一种方法: 【二分查找要求】:1.必须采用顺序存储结构 2.必须按关键字大小有序排列。 【优缺点】折半查找法的优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。 【算法思想】首先,将表中间位置记录的关键字与查找关键字比较转载 2015-04-06 19:35:53 · 569 阅读 · 0 评论 -
PHP之冒泡排序的优化
冒泡排序是一个常见的排序算法,它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。对于冒泡排序,大家估计都不陌生,工作原理如下: 1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会转载 2015-04-08 22:35:18 · 1976 阅读 · 0 评论 -
归并排序 问题
几十个文件(一共10G),分别保存了很多条数据(一行一条数据),根据其中的每条数据的拼音进行全范围排序。怎么进行? 这应该是典型的 归并排序 问题了吧。只读入一个文件内容到内存应该没问题吧。 先把每个文件内的拼音 排序好(这时用什么排序算法都行); 然后把单个已经排列好的文件,按照 归并排序 算法,每两个合并成一个(合并好的自然也是排序好的); 然后再依次合并上一边已经合并好的文件;转载 2015-04-20 14:44:29 · 515 阅读 · 0 评论 -
归并排序 过程详述
归并排序是利用递归和分而治之的技术将数据序列划分成为越来越小的半子表,再对半子表排序,最后再用递归步骤将排好序的半子表合并成为越来越大的有序序列,归并排序包括两个步骤,分别为: 1)划分子表 2)合并半子表 首先我们来讨论归并算法,归并算法将一系列数据放到一个向量中,索引范围为[first,last],这个序列由两个排好序的子表构成,以索引终点转载 2015-04-20 14:50:42 · 1085 阅读 · 0 评论 -
笔试面试算法
算法题排序算法 选择排序 每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。选择排序是不稳定的排序方法。 插入排序 插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,转载 2015-04-20 15:16:53 · 775 阅读 · 0 评论 -
十道海量数据处理题与十个方法大总结
第一部分、十道海量数据处理面试题 1、海量日志数据,提取出某日访问百度次数最多的那个IP。 此题,在我之前的一篇文章算法里头有所提到,当时给出的方案是:IP的数目还是有限的,最多2^32个,所以可以考虑使用hash将ip直接存入内存,然后进行统计。 再详细介绍下此方案:首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中。注意到IP是32位的,最多转载 2015-04-20 15:13:23 · 399 阅读 · 0 评论 -
C语言 求一个字符串中最长回文子串的长度
问题描述:如题,给定一个字符串str和其长度n,求该字符串的一个最长公共回文子串的长度(公共子串个公共子序列是两个不同的概念)。并打印出该回文子串。解答:1,首先给出一个比较直观的解法。根据回文的性质,我们可以把str进行逆转得到str1,然后求str和str1的最长公共子串,那么该子串的长度就是str的最长回文子串的长度,该公共子串就是最长的那个回文子串。也即我们把这个题目转化为求两个字转载 2015-04-24 22:29:50 · 6733 阅读 · 0 评论 -
求两个相交链表的首个相交节点(转)
有两个单向链表A和B如下图所示,他们相交于某个节点(在这个例子里为15),写一个程序把第一个交点找出来:方法1:利用两次循环 foreach nodeA in listA foreach nodeB in listB if nodeB == nodeA then A and B intersect at the current node,转载 2015-05-02 05:56:43 · 479 阅读 · 0 评论 -
PHP 数据结构 算法 三元组 Triplet
PHP 数据结构 算法 三元组 Triplet,学习php的朋友可以参考下。复制代码代码如下:/** * 三元组 Triplet * */ class Triplet { private $_data = null; // 初始化三元组 public function init($val1,$val2,$val3) { $this原创 2015-05-16 01:37:23 · 677 阅读 · 0 评论