![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构与算法
数据结构与算法
CleverCode
这个作者很懒,什么都没留下…
展开
-
宽度优先遍历算法求部门树
CleverCode在实际的工作中,会经常遇到对部门节点,求子部门的情况,其实这用算法中的宽度优先遍历算法就可以了。数据结构如下: 宽度优先遍历的算法,是一级一级的往查找下找,比如需要找技术部门的所有的子部门,那么先让技术部门入队列。然后让技术部门出队列,让技术部门的孩子节点测试部和php部门入队列,保存到栈中;然后在让测试部门出队列,让测试部门的孩子节点测...原创 2017-01-21 17:15:04 · 1656 阅读 · 0 评论 -
回溯算法
一头大牛驼2袋大米,一头中牛驼一袋大米,两头小牛驼一袋大米,请问100袋大米需要多少头大牛,多少头中牛,多少头小牛?<?php/* * k = 2x + y + 1/2z 取值范围 * 0 <= x <= 1/2k * 0 <= y <= k * 0 <= z < = 2k * x,y,z最大值 2k */$d...原创 2017-07-19 15:48:59 · 1098 阅读 · 1 评论 -
100G 数据,只有 100M 内存,怎么排序?
100G 数据,按照 100M 内存拆分,然后排序有序的数据,然后写入到 file1,file2…file100。 多路归并。 第一回合: 从 file1,file2,file3……file100.取出第一个数。及最小的。所有的初始指针都是第一行。 min1=min(min1=min(min1 = min(fil1,file2,file3…..file100);file2,file3…...原创 2018-08-16 16:07:01 · 17475 阅读 · 4 评论 -
求字符串中所有的回文子串
求一个字符串中所有的回文子字符串。“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。acbcb的回文的所有回文字符串:cbc,bcb。 动态规划算法: f(i,j) = a[i] + f(i+1,j-1)+a[j] 。(a[i] == a[j])<?phpfunction isHuiWen($start,$end,array $dat...原创 2018-08-20 18:43:41 · 7961 阅读 · 0 评论 -
分治算法--二分查找递归&非递归
一问题分析二分查找,在一个有序的数组中,查找某个元素。 比如:有序数组array(1,3,4,5,7,9,10),查找9。问题分析:将数组分成左右两个数组,查找mid值。如果mid值 > 9 ,从左边数组查找,如果 <9 从右边查找。分解过程: 1 mid = (0 + 6 ) / 2 = 3 ,查询mid=3的值,是5。 2 5 != 9,将数组分成(1,3,4,5...原创 2018-08-28 20:11:38 · 988 阅读 · 0 评论 -
回溯算法
1 算法原理回溯法有通用解法的美称,对于很多问题,如迷宫等都有很好的效果。回溯算法实际上一个类似枚举的深度优先搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回(也就是递归返回),尝试别的路径。许多复杂的,规模较大的问题都可以使用回溯法,有“通用解题方法”的美称。回溯法说白了就是穷举法。回溯法一般用递归来解决。2 算法流程图过程: 1 ...原创 2018-08-29 19:35:54 · 2741 阅读 · 2 评论 -
冒泡排序
<?php$data = array(2,5,3,6,7,1);//从前往后冒泡(每次都从第1个元素开始往后比较,最后的元素可能是排好的)function fontToEnd($data){/*{{{*/ $len = count($data); for($i = 0;$i < $len;$i++) { //每次都从第1个元素往后比...原创 2018-08-31 17:05:07 · 191 阅读 · 0 评论