算法
文章平均质量分 67
weewqrer
业精于勤,荒于嬉;行成于思,毁于随。--韩愈
再读这句话,发现竟是这么的有道理。
展开
-
红黑树(附完整C代码)
版权声明:原创不易,转载请注明转自weewqrer 红黑树红黑树简介首先红黑树是一棵二叉搜索树,它在每个结点上增加了一个存储位来表示结点的颜色,可以是RED或者BLACK。通过对一条从根节点到NIL叶节点(指空结点或者下面说的哨兵)的简单路径上各个结点在颜色进行约束,红黑树确保没有一条路径会比其他路径长出2倍,因而是近似平衡的。 用途红黑树和AVL树一样都对插入时间、删除时间和查找时间提供了最好可原创 2016-07-09 14:06:43 · 26668 阅读 · 5 评论 -
包含min函数的栈 java实现
这里着重讲java实现需要注意的细节。本文主要关注以下:EmptyStackException异常是RuntimeException的一种栈为空时如何处理异常,需要捕获异常吗?泛型如何比较大小Java包含两种异常:checked异常和unchecked异常。checked和unchecked异常之间的区别是:原创 2016-07-15 16:07:25 · 944 阅读 · 0 评论 -
手写代码 AVL 二叉平衡树(插入 删除)
avl是一种平衡二叉树,其难点在于插入和删除,这两个操作可能会导致avl树不再满足平衡条件(左右子树的高度相差小于2),所以需要旋转来重新回到平衡状态。本文实现的插入与《数据结构与算法分析–C语言描述 第二版》的方法类似,但稍有不同,本文没有用到单旋转和双旋转的概念,而是是用《算法导论》中“左旋”、“右旋”的概念。实际上左旋和右旋就是单旋转,而双旋转就是左旋和右旋的结合。下面用插图说明下在什么情况下原创 2016-07-06 17:47:10 · 1574 阅读 · 0 评论 -
经典排序算法--插入排序 希尔排序 归并排序
第二章 插入排序 希尔排序 归并排序标签(空格分隔): 算法导论讲了三个排序算法:插入法 希尔排序 归并法。插入排序算法对于少量元素的排序,它是一个有效的算法。插入排序的工作方式像许多人排序一手扑克牌。开始时,我们的左手为空并且桌子上的牌面向下。然后,我们每次从桌子上拿走一张牌并将它插入到左手中正确的位置。为了找到一张牌的正确位置,我们从右到左将它与已在手中的每张牌进行比较。拿在手中的牌问题排序好的原创 2016-07-09 15:51:24 · 712 阅读 · 0 评论