
数据结构与算法
腾飞君
博客迁至个人网站 https://toby-wang.github.io
展开
-
树、森林和二叉树的转换
树转换为二叉树(1)加线。在所有兄弟结点之间加一条连线。(2)去线。树中的每个结点,只保留它与第一个孩子结点的连线,删除它与其它孩子结点之间的连线。(3)层次调整。以树的根节点为轴心,将整棵树顺时针旋转一定角度,使之结构层次分明。(注意第一个孩子是结点的左孩子,兄弟转换过来的孩子是结点的右孩子) 森林转换为二叉树(1)把每棵树转载 2017-05-02 12:51:57 · 288 阅读 · 0 评论 -
必会算法--冒泡排序
最近去公司面试,新浪、360等第一道面试题都是书写冒泡排序,必知必会,必须做到倒背如流,随手能写。冒泡排序算法的原理如下:比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比...原创 2018-03-31 14:41:00 · 286 阅读 · 0 评论 -
必会算法--快速排序
快速排序算法的原理如下:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。使用PHP实现代码如下:function fast_sort($arr){ if (!is_array($arr)) { retu...原创 2018-03-31 19:54:02 · 373 阅读 · 0 评论 -
必会算法--直接插入排序
直接插入排序的算法如下:把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列。使用PHP实现如下:function insert_sort(&$arr)//传入引用{ for($i=1;$i<count($arr);$i++){//第0个是有序的 $insertVal...原创 2018-03-31 20:10:54 · 340 阅读 · 0 评论 -
必会算法--选择排序
选择排序算法的原理如下:每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。使用PHP实现如下: function selection_sort($array){ $count=count($array); for($i=0;$i<$count-1;$i++){ $min=$i; for($j=$原创 2018-03-31 20:54:42 · 368 阅读 · 0 评论