最近在准备系统学习一下后台基础,做为程序员(假的),编程基础还是很重要的,目前在跟着king老师学习后台开发,在学习当中,通过写博客的方式,把学到的知识整理和归纳。也给未来的自己留个回忆吧。如果有写的不对的地方,欢迎指正,毕竟是初学者。1.1 排序介绍排序算法有很多,比较基础的有下列10种:冒泡排序选择排序插入排序希尔排序归并排序快速排序堆排序计数排序桶排序基数排序还...
KMP查找
由于上一节最后的桶排序和基数排序都需要用到链表,所以这一节先补补链表,栈。队列。哈希表的知识。3.1 链表3.1.1 单链表链表感觉都没什么好说的,是嵌入式使用的比较多的一种数据结构,但是也要基本介绍介绍,下面是单向链表的结构:参考《漫画算法》链表是一种在内存中非连续,非顺序的数据结构,由若干节点所组成。单链表看到图发现由两部分组成,一部分是存放数据的变量data,一部分是存放指向下一个...
作为电子专业,对树的认识比较少,因为平时基本用不到,最多也就是链表,不过了解了红黑树之后,才发现树的用处比链表的还多,所以这一次有必要好好补充一些树和二叉树的知识。...
栈和队列比较简单,就简单的描述描述
6.1 平衡二叉树6.1.1 平衡二叉树介绍平衡二叉树是一种二叉排序树,其中每一个节点的左子树和右子树的高度差至多等于1.平衡二叉树也称为AVL树。平衡二叉树是一种高度平衡的二叉排序树,要么它是一颗空树,要么它的左子树和右子树都是平衡二叉树,且左子树和右子树的深度差绝对值不超过1。我们将二叉树上结点的左子树深度减去右子树深度的值称为平衡因子BF(Balance Factor),那么平衡...
B树 B+树
红黑树
个人比较喜欢系统学习一个知识,竟然是一个系统学习过程,前面的介绍部分自然不能少,总不能一上来就高潮吧,先来点过渡,也好好整理一个概念。
数据结构和算法本身解决的是“快”和“省”的问题,就是如何让代码运行得更快,如何让代码更省存储空间。所以执行效率是算法一个非常重要的考量指标。我们如何来衡量这些指标呢?其实就是我们说的时间、空间复杂度分析。
不看《算法4》都不知道字符串排序也能讲这么多,之前还以为就是简单的strcmp就完事了,不过看了发现没这么简单,没这么简单的话,就赶紧来学一学吧。
RK算法的全称叫Rabin-Karp算法,是由它的两位发明者Rabin和karp的名字命名的。算法理解不算难,就是BF的升级版。
我们按照习惯都是从左到右对比各个字符,然后进行排序,上一节叫的低位优先排序,虽然也能理解,但是需要字符串等长,在实际生活中,字符串一般都不会等长的,所以这次我们来学习一下不等长的,高位优先字符串排序。
终于来到了子字符串匹配,这个知识点很重要,也是经常用到的。虽然我们平时都是调用API中的函数,比如indexOf(),find()等字符串处理函数,但是我们也要学学底层的字符串匹配算法。
终于来到了KMP算法,之前以为字符串匹配算法就一个KMP,没想到原来这么多。不过也看完了,接下来就研究一波KMP算法。之前写过按着王争老师的想法,写了一些,发现有点难懂,然后看了一些网上的资料,感觉网上的讲法更容易懂一下,所以自己总结一波,写了一遍自己理解的KMP。
今天,我来学习BM算法。它是一种非常高效的字符串匹配算法,有实验统计,它的性能是KMP算法的3到4倍。初步浏览,BM算法难度不小。要好好搞一波了。
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号