数据结构
尔等同学
这个作者很懒,什么都没留下…
展开
-
数据结构笔记
数据结构笔记时间复杂度时间复杂度讲算法中基本操作的执行次数座位算法时间复杂度的度量一般讲最坏的时间情况作为算法时间复杂度的度量常用时间复杂度比较O(1)≤O(log2(n))≤O(n)≤O(Nlog2(n))O(1)\leq O(log_{2}(n))\leq O(n) \leq O(Nlog_{2}(n))O(1)≤O(log2(n))≤O(n)≤O(Nlog2(...原创 2019-03-23 21:54:56 · 206 阅读 · 2 评论 -
优秀的算法设计(一)--布隆过滤器
参考博客:https://blog.csdn.net/xinzhongtianxia/article/details/81294922布隆过滤器百度百科:布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都比一般的算法要好的多,缺点是有一定的误识...原创 2019-07-29 14:25:43 · 373 阅读 · 0 评论 -
左神算法第二章 桶排序、O(1)时间内求解栈内的最小元素
第二章比较器当比较的东西为一个对象时,系统不知道你要比较的是什么,会拿对象在内存中的地址去比较,但这并不是咱们的预期结果。所以要使用其他的比较办法,java中有比较器Comparator,实现这个接口就可以进行比较。public static class Student { public String name; public int id; public int age; ...原创 2019-07-24 02:08:23 · 196 阅读 · 0 评论 -
数据结构之中缀表达式转换为后缀表达式
参考博客: https://blog.csdn.net/swust_zeng_zhuo_k/article/details/70187831https://blog.csdn.net/yyyyxcy/article/details/78513972谢谢两位博主的博客带给我的启发转换规则1.遇到操作数:直接输出(添加到后缀表达式中)2.栈为空时,遇到运算符,直接入栈3.遇到左括号...原创 2019-06-22 21:40:02 · 2144 阅读 · 1 评论 -
数据结构之栈、队列的基本操作(附源码)
栈和队列1.栈栈是一种只能在一段进行插入或者删除操作的线性表。允许进行操作的的一端称为栈顶(Top)。表的另一端称为栈顶,栈顶是固定不变的。栈的特点:后进先出比如我们在往瓶子里装沙子时,最后被装进去的沙子会被最先倒出来。栈可以分为顺序栈和链式栈创建一个栈定义栈中的节点,拥有一个数据域与一个指针域。typedef struct Node { int data ; struct...原创 2019-04-10 23:09:40 · 767 阅读 · 0 评论 -
O(1)时间删除链表指定节点(附完整程序)
O(1)时间删除链表指定节点(附完整程序)平时删除链表中某个节点只能通过遍历到所要删除的节点处,然后进行删除。那么时间复杂度就是O(n)。现在有一种平均时间复杂度为O(1) 的算法。这种算法的前提是要删除的节点在所给的链表中,如果不在会报错。在给定所要删除链表的节点指针存在于所给定的链表当中时,这种算法可以实现O(1)时间内删除节点。链表节点结构:typedef struct...原创 2019-04-05 00:40:25 · 387 阅读 · 0 评论 -
算法练习:随时找到数据流的中位数、微软折纸问题
随时找到数据流的中位数实现思路准备两个堆,一个放前 n/2 个数,另一个放后 n/2个数。比如 5 3 6 45 放到大根堆里,第二个数进来,5>3 ,将 3放到5下面。此时第一个堆里有2个数,第二个里有0个数。2-0>=2。将第一个堆的堆顶的数放入第二个堆,即小根堆,此时第一个堆里只有3 ,第二个里只有5 。6 进来, 放入小根堆3 5 64进来, 4...原创 2019-08-04 15:15:43 · 268 阅读 · 0 评论