随笔分类 -  数据结构与算法

极客时间专栏Google工程师王争
摘要:队列中典型的就是遵循先进先出原则的,队列是操作受限制的线性表结构。 一、队列的特点 队列最大的特点就是先进先出,主要有两个操作入列和出列。跟栈一样,既可以用数组实现,又可以用链表实现,用数组实现叫顺序队列,用链表实现,叫链式队列,特别是一个长的像环的循环队列。在数组实现队列的时候,会有数据搬移操作, 阅读全文
posted @ 2019-03-12 13:50 ssc在路上 阅读(517) 评论(0) 推荐(0)
摘要:链表这种数据结构,真的比较难以掌握的,感觉有点头疼。。。和数组相比,链表更适合插入。删除操作频繁的场景,查询的时间复杂度较高 一、链表种类 单链表、循环链表、双向链表 二、链表中常用的算法练习 此大部分内容来自极客时间专栏,王争老师的《数据结构与算法之美》 极客时间:https://time.gee 阅读全文
posted @ 2019-03-06 22:44 ssc在路上 阅读(240) 评论(0) 推荐(0)
摘要:BM算法,全称是Boyer-Moore算法,1977年,德克萨斯大学的Robert S. Boyer教授和J Strother Moore教授发明了一种新的字符串匹配算法。 BM算法定义了两个规则: 1、坏字符规则:当文本串中的某个字符跟模式串的某个字符不匹配时,我们称文本串中的这个失配字符为坏字符 阅读全文
posted @ 2019-01-07 14:20 ssc在路上 阅读(1829) 评论(0) 推荐(0)
摘要:关于二叉树,首先搞清楚“树”,这里面有几个重要的概念:高度(Height)、深度(Depth)、层(Level)。 节点的高度 = 节点到叶子节点的最长路径(边数) 节点的深度 = 根节点到这个节点所经历的边的个数 节点的层数 = 节点的深度 + 1 树的高度 = 根节点的高度 (这张图可以帮助理解 阅读全文
posted @ 2018-11-18 19:04 ssc在路上 阅读(385) 评论(0) 推荐(0)
摘要:二分法查找具有惊人的查找速度,尤其是对于海量数据的时候,作用更加明显,时间复杂度用大O表示法,即是(logn),这种(logn)时间复杂度是非常神奇的,比如 n 等于 2 的 32 次方,这个数很大了吧?大约是42亿,也就是说,如果我们在 42 亿个数据中用二分查找一个数据,最多需要比较 32 次。 阅读全文
posted @ 2018-11-09 23:08 ssc在路上 阅读(2303) 评论(0) 推荐(0)
摘要:写了一下排序算法的一些实例,Java语言写的,从网上也是各种找,各种测试,整理了一下,方便学习极客时间专栏-数据结构与算法:作者是王争。 注释:写到最后越来越难理解,后面的几个算法,基本上都是拷贝的,但是大体的思路是可以理解的,对于时间、空间复杂度分析,还是比较混乱,但是基本上头脑中有了程序优化的一 阅读全文
posted @ 2018-10-09 16:26 ssc在路上 阅读(784) 评论(0) 推荐(0)
摘要:确实花钱订阅了一下数据结构与算法的专栏,这里没有把专栏里面的内容写到博客上,我很注重人家的劳动成果的,所以我只把我写的,或者是网上找的一些算法的实例在这里贴出来,方便自己以后的学习,以及对自己的对一些比较常见的算法的理解有所帮助! 在公司的时候,空闲的时间写的递归算法的一些实例,我也测试过了,可以运 阅读全文
posted @ 2018-10-01 17:45 ssc在路上 阅读(5822) 评论(0) 推荐(0)