数据结构
文章平均质量分 85
yw8355507
这个作者很懒,什么都没留下…
展开
-
《数据结构与算法分析》AVLTree详解
前言: 上一篇博客讲完了最基础的二叉查找树,现在总算进入到第一个难题了,AVLTree。实话说这一颗树的实现花费了我整整一天的时间,编码半天,调试正确又花了半天。在自己不断的调试,检查之后,总算是完美的实现了。这一颗树书上只给出了插入操作,我根据AVLTree 的要求自行想出了删除操作的方法,并且成功实现了,让我觉得对于数据结构,我总算是成功入门了吧。我的github:原创 2015-07-27 03:26:20 · 529 阅读 · 2 评论 -
《数据结构与算法分析》随机化算法
前言: 随机化算法这一章,先介绍了如何产生随机数,不过这个产生的代码已经完全给出来了,我也没有什么编码的必要了,还有一个是素性测试,利用了费马定理,可惜我看了好多遍都没有完全看懂代码和定理的联系,暂且也不再这里介绍了,今天只说说跳跃表的实现。我的github:我实现的代码全部贴在我的github中,欢迎大家去参观。https://github.com/Yi原创 2015-09-29 23:52:14 · 219 阅读 · 0 评论 -
《数据结构与算法分析》深度优先搜索--割点寻找详解
前言: 经过一番折腾,最后还是留在了雷达所,不知道是对是错,证明自己的代价就是:别人觉得你行,然后你就得担起责任来了。虽然这些事情你一点也不想干。不说这些伤心事了,说了项目也得干,做完了再说。还是来看看今天我要做的算法吧。我的github:我实现的代码全部贴在我的github中,欢迎大家去参观。https://github.com/YinWenAt原创 2015-09-15 01:05:50 · 1838 阅读 · 0 评论 -
《数据结构与算法分析》随机化算法--跳跃表详解
前言: 随机化算法这一章,先介绍了如何产生随机数,不过这个产生的代码已经完全给出来了,我也没有什么编码的必要了,还有一个是素性测试,利用了费马定理,可惜我看了好多遍都没有完全看懂代码和定理的联系,暂且也不再这里介绍了,今天只说说跳跃表的实现。我的github:我实现的代码全部贴在我的github中,欢迎大家去参观。https://github.com/Yi原创 2015-09-30 01:04:56 · 1244 阅读 · 0 评论 -
《数据结构与算法分析》动态规划--矩阵乘法最优顺序、最优二叉查找树详解
前言: 最近感觉时间越来越紧张了,一堆的事情等着做,一堆的书等着看,真希望一天能有30个小时。过了一周,这本书还是停留在第十章,这一章出现的算法太多,一个个实现确实花了不少的时间。我的github:我实现的代码全部贴在我的github中,欢迎大家去参观。https://github.com/YinWenAtBIT介绍:一、动态原创 2015-09-29 23:35:29 · 1114 阅读 · 0 评论 -
《数据结构与算法分析》贪婪算法与分治算法--二维最近点问题详解
前言: 这段时间晚上都在做实习的工作,所以学习的进度有点慢了下来。不过基础是非常重要的,所以一定不能把基础给拉下,平时挤时间出来也得好好看书学习。这本书现在到了第十章,还有两章。本来打算9月底一定要弄完这本书的,不过发生了太多的事情,但是还是要尽全力往前赶。我的github:我实现的代码全部贴在我的github中,欢迎大家去参观。https://g原创 2015-09-26 02:30:53 · 1288 阅读 · 0 评论 -
《数据结构与算法分析》寻找欧拉回路--多次修改最终复杂度O(E+V)
前言: 欧拉回路这一块,书上只用画图的方式解释了思路,然后说,采用合适的数据结构,可以把复杂度变为O(E+V),课本上简单的提及了一下,使用链表,并且保存指向最后扫描到的边的指针。当时无论怎么想都没有想明白,这到底要怎么样做才能实现。于是花了4,5个小时去网上搜寻博客,寻找oj相似的题目,寻找本书的答案。结果什么结果都没有得到。最终决定,还是先实现基本的功能吧,不然这一章原创 2015-09-16 18:11:29 · 2270 阅读 · 0 评论 -
《数据结构与算法分析》回溯算法——收费公路重建问题详解
前言: 收费公路重建这个问题,实现的思路很简单,与最朴素的想法一致。先找到几个标准,然后进行穷举,直到找到答案,或者每一种方案都试过,证明无解。然而,在编写这个代码的时候却出现了非常多的问题,逻辑错误,不方便调试,编码完之后花了3个小时才调通。在编写这个代码的时候,一定要注意逻辑非常清楚,最好是把伪代码详细到约等于代码,再开始编写。1. 选点的时候,先删左边,再删原创 2015-10-02 21:50:19 · 1292 阅读 · 1 评论 -
《数据结构与算法分析》回溯算法之博弈——三连棋(tic tac toe)人机对战AI设计(αβ枝减)
前言: 这次的回溯算法实在是太有意思了,不过刚刚接触的时候确实不容理解,极小极大策略,αβ枝减看了好几遍才明白整个过程。实现的时候又发现还有细节不明白,想明白之后对于整体的认识又加深了一步。编码的过程反而没有太大的问题,只有再判断平局的时候,写错了判断的条件,导致没有平局存在,花了点时间调试就解决了。我的github:我实现的代码全部贴在我的github中,欢原创 2015-10-03 02:27:39 · 2457 阅读 · 1 评论 -
《数据结构与算法分析》详细对比自顶向下与自底向上红黑树——C实现自顶向下插入与删除
前言: 这本书学到了最后一章终于出现了红黑树,它不愧为最难的几个数据结构之一,从看书到实现整个红黑树一共用时2天,第一天看书加上实现自顶向下的插入算法大概用了6个小时。July 的博客里,还有各个知名博主博客里的红黑树基本是使用自底向上的方式来实现删除的,《数据结构与算法分析》这本书上建议使用自顶向下删除,但是对于如何删除,说的特别含糊,基本上不可以参考,于是在网络上寻找是原创 2015-10-06 17:20:17 · 3000 阅读 · 3 评论 -
《数据结构与算法分析》伸展树(自顶向下)详解
前言: 在完成了自底向上的伸展树之后,我决定把自顶向下的伸展树也做出来。不过这个方式《数据结构与算法分析》书上没讲,完全只能通过自学了。实现的方式比较不容易懂,我在阅读了第二篇博客许多遍之后才明白整个过程。参考的博客: 自底向上:http://www.cnblogs.com/vamei/archive/2013/03/24/2976545.html。我从这一篇博客中学原创 2015-07-28 17:24:15 · 2054 阅读 · 4 评论 -
《数据结构与算法分析》哈希表(散列)简介与实现
前言: 这两天等阿里的电话等了好久了,一直没有消息,是不是已经把我刷了。。不过不管这么多,该学习还是要学习的,简历都没过关证明我还需要更加的努力。这两天回家了,休息一下,然后进入下一个阶段的奋斗吧。我的github:我实现的代码全部贴在我的github中,欢迎大家去参观。https://github.com/YinWenAtBIT介绍:原创 2015-08-01 20:52:52 · 791 阅读 · 2 评论 -
《数据结构与算法分析》第十二章,AA-树,Treap树简要介绍与实现
前言: 这里我要介绍的这4个数据结构,是在《数据结构与算法分析》一书上的最后4种数据结构了。这些数据结构给出来了实现的代码,实现的难度并不大,一天之内我就把这四个数据结构的测试代码给调通了。 这四个数据结构里,一个是红黑树的变种,对红黑树进行了化简,一个是为了多维查询范围所设计的数据结构。最后一个是变种的斐波那契堆,目的同样是为了化简实现。本来我想这几个数据原创 2015-10-16 21:56:11 · 1220 阅读 · 0 评论 -
《数据结构与算法分析》第十二章,K-d树,与配对堆简要介绍与实现
前言: 这里我要介绍的这4个数据结构,是在《数据结构与算法分析》一书上的最后4种数据结构了。这些数据结构给出来了实现的代码,实现的难度并不大,一天之内我就把这四个数据结构的测试代码给调通了。 这四个数据结构里,一个是红黑树的变种,对红黑树进行了化简,一个是为了多维查询范围所设计的数据结构。最后一个是变种的斐波那契堆,目的同样是为了化简实现。本来我想这原创 2015-10-17 01:26:25 · 560 阅读 · 0 评论 -
《数据结构与算法分析》第十二章,AA-树,Treap树,K-d树,配对堆简要介绍与实现
前言:这里我要介绍的这4个数据结构,是在《数据结构与算法分析》一书上的最后4种数据结构了。这些数据结构给出来了实现的代码,实现的难度并不大,一天之内我就把这四个数据结构的测试代码给调通了。这四个数据结构里,一个是红黑树的变种,对红黑树进行了化简,一个是为了多维查询范围所设计的数据结构。最后一个是变种的斐波那契堆,目的同样是为了化简实现我的github:我实现原创 2015-10-16 20:26:19 · 150 阅读 · 0 评论 -
《数据结构与算法分析》搜索二叉树详解
前言:二叉树这一章的内容实现相对于上一章难多了,不仅仅是想明白就一定能立刻写出来,实现的时候会遇上许多没有考虑周到的问题,需要在实现的时候再选择一个合适的解法。并且在编码完之后,进行调试的时候,同样会遇到许多问题,比如树断裂了,对NULL指针进行了访问,等等。这些问题都需要细心的好好检查,调试,解决。这一章的博客本来上一周就该更新,不过为了实现这些头疼的树,让我拖到了现在。我的github原创 2015-07-27 01:57:09 · 452 阅读 · 1 评论 -
《数据结构与算法分析》伸展树(自底向上)详解
前言: 完成了AVLTree之后,课本又接着讲了伸展树,不过书上就只简单的提及了一下这棵树的特点,并且简单的讲诉了树的伸展操作。没有给出树的定义,也没有给出任何的操作伪代码或者算法流程。在完成了AVLTree之后我信心大增,决定要自行实现这棵树,于是自己在纸上画了画流程图,然后就开始编码了。结果遇上的第一个问题就是树结构定义上的问题。书本上说伸展树由于每次访问之后会将访问的节点变原创 2015-07-27 18:07:16 · 1332 阅读 · 3 评论 -
《数据结构与算法分析》二叉堆详解
前言: 博客停止更新了一个星期,因为我回家休假了。本来打算回家一周之内狂学,直接搞定这本书。结果发现家里果然也是时间的黑洞,一天不知道忙啥就结束了,然后加上有小伙伴们诱惑我出去玩,就更加把持不住了。然后彻底弃疗,果断玩了个爽。今天我是来补上拉下的整整一章的博客的。。我的github:我实现的代码全部贴在我的github中,欢迎大家去参观。https://g原创 2015-08-12 09:41:48 · 1100 阅读 · 2 评论 -
《数据结构与算法分析》左式堆详解
前言: 这篇博客也是补上休假拉下的内容。。博客已经严重滞后了。。我的github:我实现的代码全部贴在我的github中,欢迎大家去参观。https://github.com/YinWenAtBIT介绍:定义: 左式堆(Leftist Heaps)又称作最左堆、左倾堆,是计算机语言中较为常用的一个原创 2015-08-12 20:31:26 · 2122 阅读 · 2 评论 -
《数据结构与算法分析》二项队列详解
前言: 补上这篇博客,就补完一半了。我的github:我实现的代码全部贴在我的github中,欢迎大家去参观。https://github.com/YinWenAtBIT介绍:定义: 二项队列不同于左式堆和二叉堆等优先队列的实现之处在于,一个二项队列不是一棵堆序的树,而是堆序树的集合,即森林。堆序树中原创 2015-08-12 21:36:29 · 808 阅读 · 1 评论 -
《数据结构与算法分析》图论算法--邻接表与拓扑排序
前言: 上一周一直在忙着准备阿里巴巴的笔试,花了大量时间复习以前的内容,不过感觉好像没有起到什么作用,现在不想这些问题了,先专心学习数据结构。现在终于来到了本科时遇到最头疼的图论了。本科时就只会在纸上画一画算法,现在我要亲手实现它们。我的github:我实现的代码全部贴在我的github中,欢迎大家去参观。https://github.com/YinWen原创 2015-08-25 02:48:45 · 1475 阅读 · 0 评论 -
《数据结构与算法分析》排序算法总结
前言: 排序算法在本科的时候就学习过冒泡法,也没有想过如何去计算算法的复杂度,现在想想之前所用的排序算法实在是太小儿科了。当时课本上最先进的2路插入排序也是O(n^2)的复杂度,当时还觉得特别麻烦。就是想的太多,做的太少。在这里所列出来的排序算法都是内部排序算法,并且不包括我的github:我实现的代码全部贴在我的github中,欢迎大家去参观。h原创 2015-08-14 19:33:29 · 639 阅读 · 3 评论 -
《数据结构与算法分析》表,栈和队列实现
前言:学习完了MySQL之后,按照计划开始好好学习数据结构和算法,本科的时候有学过《数据结构》这门课,但是当时的我的学习态度只能说太烂,只求加权的结果就是所有的代码都是纸上实现,从来没有实际编写运行过,所以说那时候学习的东西压根就不行,到研究生的时候就只能记得几个数据结构的名字了。在这本书之前,我也有买《算法导论》,大致翻了翻,感觉《算法导论》太理论了,数学推导太多,更加适合已经有了足够好原创 2015-07-21 23:24:37 · 616 阅读 · 0 评论 -
《数据结构与算法分析》最短路径算法--BFS遍历和Dijkstra算法
前言: 这一周学习的效率不错,不过图论这一块确实挺麻烦的,学完了算法之后,实现起来还需要码上不少代码。不过让我感到惊奇的一点是,我本科学习数据结构的时候,觉得Dijkstra算法很难,当时只能勉强记住算法的操作步骤,具体原理没弄明白。结果现在实现完BFS遍历之后,Dijkstra算法的雏形自动在我脑子里出来了,只是在一些细节上,算法复杂度上没有想清楚。然后看书上的概念,发现Dij原创 2015-08-30 14:10:16 · 2009 阅读 · 0 评论 -
《数据结构与算法分析》网络最大流问题
前言: 网络流最大流的实现也是对前面所学的知识的一次总结,这一部分内容书本没有给出任何的代码或者伪代码,只用画图的方式叙述了一下整个过程的思想。实现的细节就是完全根据所学的内容,利用之前的实现数据结构完成。在完成这一部分编码的过程时,还发现了我以前对邻接表实现的缺陷,内聚耦合做的不够完善,需要独立成函数的模块不够独立。在实现的过程中我重新修改了邻接表的程序模块。我的git原创 2015-08-30 16:55:44 · 1103 阅读 · 0 评论 -
《数据结构与算法分析》不相交集
前言: 回来到学校,今天又要开始苦逼的工作了,后悔回家玩去了,现在想学习时间又不够了。。。就是这么傻。这一周又有汇报,没有足够的学习时间了。我的github:我实现的代码全部贴在我的github中,欢迎大家去参观。https://github.com/YinWenAtBIT不相交集:思想:不相交集是解决等价问原创 2015-08-17 21:32:12 · 573 阅读 · 0 评论 -
数据结构——树状数组
前言:最近在刷leetcode的最后30题了,马上就要刷完,然后再来一遍2刷提高熟练度。在最后这些题目里,遇上了树状数组这个新的数据结构。问题都是简单的数组统计问题,但是O(N)的解都不能满足要求,需要使用O(lgn)才行。树状数组不太容易理解,找了好几篇博客才测定明白,这里贴出来。我的github:leetcode马上就要做完了,我做题的时候贴上了详细的思考记录以转载 2016-05-31 18:17:07 · 522 阅读 · 0 评论