2019年6月27日
摘要: 之前介绍过几种排序算法,今天说一说堆排序算法。虽然堆排序在实践中不常用,经常被快速排序的效率打败,但堆排序的优点是与输入的数据无关,时间复杂度稳定在O(N*lgN),不像快排,最坏的情况下时间复杂度为O(N2)。 说明,了解堆排序的前提是要掌握二叉树的概念,可自行百度,本文不做介绍。 说到堆排序,首 阅读全文
posted @ 2019-06-27 17:33 Burkut 阅读(2722) 评论(0) 推荐(0) 编辑
  2019年6月6日
摘要: 本文属于原创,转载请注明来源。 在上一篇博文中,详细介绍了2-3树的操作(具体地址:https://www.cnblogs.com/outerspace/p/10861488.html),那么对于更多教科书上更为普遍的2-3-4树,在这里也给出 树的定义、节点的定义、插入、查找、删除和遍历等操作的源 阅读全文
posted @ 2019-06-06 20:05 Burkut 阅读(964) 评论(0) 推荐(0) 编辑
  2019年5月14日
摘要: 弄懂了二叉树以后,再来看2-3树。网上、书上看了一堆文章和讲解,大部分是概念,很少有代码实现,尤其是删除操作的代码实现。当然,因为2-3树的特性,插入和删除都是比较复杂的,因此经过思考,独创了删除时分支收缩、重新展开的算法,保证了删除后树的平衡和完整。该算法相比网上的实现相比,相对比较简洁;并且,重 阅读全文
posted @ 2019-05-14 00:59 Burkut 阅读(2764) 评论(0) 推荐(0) 编辑
  2019年5月13日
摘要: 说明,本文全文代码均用dart语言实现。 求一个集合S中m个元素的所有排列情况,并打印,非常适合用递归的思路实现。本文给出了两种实现方法,一种是给定的填充排列数组长度是固定的,一种是可变长度的。两种方法主要思路是一样的,只是实现细节上略有差异。具体代码如下: 如果求一个集合的全排列,如果是集合的话, 阅读全文
posted @ 2019-05-13 18:15 Burkut 阅读(479) 评论(0) 推荐(0) 编辑
  2019年5月10日
摘要: 前两天突发奇想,写一个乘法的实现,但不用乘号*。并测试一下性能如何。因此就有了下面的代码:(本文主要目的是为了玩递归和位移,因此仅限自然数) 首先,标准乘法: 第二,从数学的角度,乘法其实就是加法,只是加法的简写而已,因此 a * b 可以理解为 b 个 a 相加;故得出用加法代替的乘法。为了减少加 阅读全文
posted @ 2019-05-10 19:12 Burkut 阅读(1685) 评论(0) 推荐(0) 编辑
  2019年5月7日
摘要: 一个印度的古老传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针。印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了由大到小的64片金片,这就是所谓的汉诺塔。不论白天黑夜,总有一个僧侣在按照下面的法则移动这些金片:一次只移动一片,不管在哪根针上,小片必须在大片上 阅读全文
posted @ 2019-05-07 20:39 Burkut 阅读(680) 评论(0) 推荐(0) 编辑
摘要: Fibonacci 斐波那契数列第n个数的求解,也可以用递归和非递归的形式实现,具体如下,dart语言实现。 阅读全文
posted @ 2019-05-07 18:07 Burkut 阅读(1202) 评论(0) 推荐(0) 编辑
摘要: 求一个自然数n的阶乘,也非常适合用递归的方式实现。当然,所有的递归都可以用非递归的方式来实现,只是在代码结构上将显得啰嗦和复杂。现代编译器对递归函数的调用开销已经大幅优化,因此,对于类似汉诺塔等问题的求解,用递归实现非常简洁明了,并且易于阅读和理解。 本文给出自然数n的阶乘的递归与非递归求解算法代码 阅读全文
posted @ 2019-05-07 18:03 Burkut 阅读(1485) 评论(0) 推荐(0) 编辑
摘要: 求一个集合S的m个元素组合的所有情况,并打印出来,非常适合采用递归的思路进行求解。因为集合的公式,本身就是递归推导的: C(n,m) = C(n-1,m-1) + C(n-1,m)。 根据该公式,每次递归会分裂为两次递归,直至m=1或m=n的情况,打印出当前组合情况。 本文实现了给定m的递归代码,并 阅读全文
posted @ 2019-05-07 17:54 Burkut 阅读(1119) 评论(0) 推荐(0) 编辑
  2019年3月30日
摘要: 之前的文章写了红黑树的实现,因为自己实现了插入和删除的算法。为了测试算法的性能,以及算法的正确性,又写了几个函数,用来检查一棵树是否是红黑树,并进行压力测试,代码如下: 阅读全文
posted @ 2019-03-30 21:40 Burkut 阅读(513) 评论(0) 推荐(0) 编辑