随笔分类 -  算法

摘要:哈夫曼 一、最优树的定义: 结点的路径长度定义为:从根结点到该结点的路径上分支的数目。 树的路径长度定义为:树中每个结点的路径长度之和。 树的带权路径长度定义为:树中所有叶子结点的带权路径长度之和 WPL(T) = (对所有叶子结点) 在所有含有n个叶子结点、并带有相同权值的m叉树中,必存在一棵其带 阅读全文
posted @ 2019-04-01 11:48 学知无涯 阅读(864) 评论(0) 推荐(0) 编辑
摘要:有个人想上一个n级的台阶,每次只能迈1级或者迈2级台阶,问:这个人有多少种方法可以把台阶走完? 相关问题: (1)有个人想上一个n级的台阶,每次只能迈1级或者迈2级台阶,问:这个人有多少种方法可以把台阶走完?例如:总共3级台阶,可以先迈1级再迈2级,或者先迈2级再迈1级,或者迈3次1级总共3中方式。 阅读全文
posted @ 2019-03-29 16:59 学知无涯 阅读(3480) 评论(0) 推荐(0) 编辑
摘要:问题: 尽可能多地写出获取文件扩展名的方法: 阅读全文
posted @ 2019-03-29 15:57 学知无涯 阅读(2294) 评论(0) 推荐(0) 编辑
摘要:删除文件夹 示例: 相关函数: 阅读全文
posted @ 2019-03-29 14:53 学知无涯 阅读(183) 评论(0) 推荐(0) 编辑
摘要:遍历文件夹 参数$level是为了缩进样式。 主要的文件操作函数: is_dir() 函数检查指定的文件是否是一个目录。如果目录存在,该函数返回 TRUE。 opendir() 函数打开目录句柄。成功则返回目录句柄资源。失败则返回 FALSE。 如果路径不是合法目录,或者由于许可限制或文件系统错误导 阅读全文
posted @ 2019-03-29 14:25 学知无涯 阅读(336) 评论(0) 推荐(0) 编辑
摘要:二分查找 简介: 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。 算法要求: 1.必须采用顺序存储结构。2.必须按关键字大小有序排列。 时间复杂度:可以表示O(h)=O(log2n)(是以2为底,n的对数) 代码示例: (考虑到数组索引可能从非0开始) 方式一:使用 阅读全文
posted @ 2019-03-29 11:54 学知无涯 阅读(157) 评论(0) 推荐(0) 编辑
摘要:杨辉三角 关于杨辉三角: 杨辉三角,是二项式系数在三角形中的一种几何排列。 示例: 规则概述: 1、每行端点与结尾的数为1;2、每个数等于它上方两数之和;3、每行数字左右对称,由1开始逐渐变大;4、第n行的数字有n项。 代码示例: <?php function sanjiao($n){ $arr = 阅读全文
posted @ 2019-03-28 16:04 学知无涯 阅读(668) 评论(0) 推荐(0) 编辑
摘要:牛生小牛问题 示例:有一母牛,到4岁可生育,每年一头,所生均是一样的母牛,到15岁绝育,不再能生,20岁死亡,问n年后有多少头牛? 代码示例: 阅读全文
posted @ 2019-03-28 14:46 学知无涯 阅读(581) 评论(0) 推荐(0) 编辑
摘要:猴子当大王算法 题目: 假如,20个猴子围成一圈,从某个开始报数1-2-3-4-5...,报“5”的猴子就被淘汰,游戏一直进行到圈内只剩一只猴子,它就是猴大王了。 请写出程序实现: 思路:使用数组,当能被整除的就淘汰,不能整除的就放到数组后边,形成一个圈,一直循环到剩余一个为止,就是大王了。 fun 阅读全文
posted @ 2019-03-27 17:11 学知无涯 阅读(855) 评论(0) 推荐(0) 编辑
摘要:插入排序 一、关于插入排序: 有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序, 这个时候就要用到一种新的排序方法——插入排序法。 插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据。 二、插入排序特点 阅读全文
posted @ 2019-03-27 13:51 学知无涯 阅读(372) 评论(0) 推荐(0) 编辑
摘要:快速排序 一、简介: 快速排序(Quicksort)是对冒泡排序的一种改进。它的基本思想是: 通过一趟排序将要排序的数据分割成独立的两部分, 其中一部分的所有数据都比另外一部分的所有数据都要小, 然后再按此方法对这两部分数据分别进行快速排序, 整个排序过程可以递归进行, 以此达到整个数据变成有序序列 阅读全文
posted @ 2019-03-21 15:18 学知无涯 阅读(161) 评论(0) 推荐(0) 编辑
摘要:冒泡排序 欢迎大家指正、评论。 一:原理 比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需 阅读全文
posted @ 2019-03-21 10:15 学知无涯 阅读(145) 评论(0) 推荐(0) 编辑