![](https://img-blog.csdnimg.cn/20190814155517188.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构与算法
文章平均质量分 88
作为计算机专业最重要的一门课,我欠DSA的太多了!!!最近看了,很多CSDN上大神级别的博客,才知道自己 是在虚度光阴,除了数据结构中的基础部分不再赘述,本专栏主要是更新:BST树、AVL树、红黑树、跳跃表、字典树、倒排索引以及分治、贪心、回溯、DP、分支限界等内容,工作量饱满!
以及后续内容:
1.线性表,数组、链表、栈、队列以及笔试面试题代码实践应用
2.哈希表理论以及代码实践,大数据查重处理方案,涉及哈希表、位图法、Bloom Filter布隆过滤器理论讲解和代码实践应用
3.BST二叉搜索树,AVL平衡二叉树,红黑树,B-树和B+树 ,哈夫曼树的理论、代码以及笔试面试问题代码详解
4.跳跃表和倒排索引结构以及代码实践应用
5.无向图和有向图的深度和广度优先遍历, 迪杰斯特拉最短路径算法,理论讲解和代码实践引用
6.冒泡排序、选择排序、插入排序、希尔排序、堆排序(大根堆、小根堆、优先级队列)、快速排序、归并排序、基数排序代码和排序算法优化
7.串操作,朴素模式匹配算法,KMP模式匹配算法,字典树(前缀树)字符串查找理论讲解和代码实践应用
8.五大算法,包括分治算法、动态规划算法、回溯算法、分支限界算法、贪心算法的算法理论讲解和笔试面试问题代码实践应用
孤傲小二~阿沐
谁终将声震人间,必长久深自缄默;
谁终将点燃闪电,必长久如云漂泊。
PostgreSQL内核开发 数据库领域潜力新星 CSDN博客专家
展开
-
DSA 经典数据结构与算法 学习心得和知识总结(三) |有向无环图及其应用
有向无环图及其应用原创 2024-02-16 19:11:14 · 1000 阅读 · 0 评论 -
算法笔记的学习心得和知识总结(四)|CodeUp and Pat篇(算法笔记第四章 哈希算法)
目录结构算法笔记CodeUp Pat汇总文章快速说明索引一、课内算法示例二、CodeUp 582文章快速说明索引学习目标:因为最近一来要准备一下浙大PAT考试,二来复习一下将近遗忘的算法知识。正好把当年快翻烂掉的《算法笔记》再学一遍,权做C/C++和DSA的复习之用!注:因为进入工作岗位之后,基础知识的使用和遗忘会变得十分常见!面向过程 面向对象逐渐变成了面向百度编程,可是对于参加算法或编程竞赛而言 Baidu恐怕也帮不上忙了!古人云:温故而知新,可以为师矣!1、Code.原创 2021-02-22 21:12:41 · 1543 阅读 · 0 评论 -
DSA 经典数据结构与算法 学习心得和知识总结(二) |散列 从小白初级入门到大佬全知全会(实质已然崩溃)
目录结构注:提前言明 本文借鉴了以下博主、书籍或网站的内容,其列表如下:1、参考书籍:《算法导论》第三版 就是这本被封神的杰作,就是它????2、参考书籍:《数据结构》严奶奶版3、参考书籍:《数据结构》(用面向对象方法与C++语言描述) 第二版 殷人昆版4、散列表的基本概念及其运算,点击前往5、hash算法原理详解,点击前往6、哈希表(散列表)原理详解,点击前往7、散列表,点击前往8、参考书籍:《数据结构》(C++版) 第三版 邓俊辉原创 2021-01-31 20:22:02 · 6288 阅读 · 0 评论 -
算法笔记的学习心得和知识总结(二)|CodeUp and Pat篇(算法笔记第三章)
目录结构算法笔记CodeUp Pat汇总文章快速说明索引一、PAT B1001二、PAT B1032三、CodeUp 575文章快速说明索引学习目标:因为最近一来要准备一下浙大PAT考试,二来复习一下将近遗忘的算法知识。正好把当年快翻烂掉的《算法笔记》再学一遍,权做C/C++和DSA的复习之用!注:因为进入工作岗位之后,基础知识的使用和遗忘会变得十分常见!面向过程 面向对象逐渐变成了面向百度编程,可是对于参加算法或编程竞赛而言 Baidu.原创 2020-12-08 02:09:53 · 565 阅读 · 0 评论 -
算法笔记的学习心得和知识总结(一)|CodeUp and Pat篇(算法笔记第二章)
目录结构算法笔记CodeUp Pat汇总文章快速说明索引一、CodeUp 566文章快速说明索引学习目标:因为最近一来要准备一下浙大PAT考试,二来复习一下将近遗忘的算法知识。正好把当年快翻烂掉的《算法笔记》再学一遍,权做C/C++的复习之用!注:因为进入工作岗位之后,基础知识的使用和遗忘会变得十分常见!古人云:温故而知新,可以为师矣!1、CodeUp链接 ,点击前往2、浙大PAT链接,点击前往本文有详细的实例(《算法笔记》书中的全部例题,都是可以直接通过评测系统的).原创 2020-11-20 20:38:56 · 628 阅读 · 2 评论 -
从工程实践的角度理解一致性哈希算法(Consistent Hashing)
一致性哈希算法原创 2020-06-27 01:42:42 · 7590 阅读 · 0 评论 -
DSA 经典数据结构与算法 学习心得和知识总结(一) |排序 十大排序算法汇总(C++)
2019年10月30日16:09:07时至今日,也面了这么多家公司。基本上排序算法是必问必考必写的,到现在为止 我手写过堆排序、快速排序、希尔排序、归并排序等(还有一个长相十分好看的面试官小姐姐 让我手写了桶排序,唉)。但是总体上来说不难,这些算法很基础 没什么难度。本来之前已经把DSA之十大排序算法 全都分析过了,但是一直没有进行汇总。今天 西安难得天气不错(我也收到了一家公司的offer通...原创 2019-10-30 16:50:24 · 5321 阅读 · 0 评论 -
关于《剑指offer》的66道编程题的总结(一)
(第一题)2019年7月21日下午题目链接如下:https://www.nowcoder.com/practice/623a5ac0ea5b4e5f95552655361ae0a8?tpId=13&tqId=11203&tPage=3&rp=1&ru=%2Fta%2Fcoding-interviews&qru=%2Fta%2Fcoding-intervie...原创 2019-09-05 02:24:03 · 5953 阅读 · 0 评论 -
DSA之十大排序算法第五种:Merge Sort
归并排序归并排序是经典算法Divide and Conquer的实际应用之一,具体实现就是建立在 归并操作的基础之上。将两个已然有序的子序列合并成为一个 更大的有序序列,所以前提:子序列要先行有序。通常我们将两个有序表合并成一个有序表,称之为2-路归并。具体做法就是:把长度为n的无序序列,先分成两个长度为 n/2的子序列;对这两个子序列接着进行 归并排序;子序列有序之后,进行子序列的归并成最后...原创 2019-08-22 21:14:05 · 5630 阅读 · 0 评论 -
DSA之十大排序算法第四种:Shell Sort
希尔排序正如我们上一节讨论的直接插入排序而言: 直接插入排序类似于 班级学生身高从低到高进行站队:第一个学生先进行站队,第二个学生若是比他低,则站前面否则站后面。无论如何,此时他们二人已经有序,此刻第三个学生来了,同理 找到自己的位置 插进站队里面。一直到最后一名学生也找到自己的位置,整个排队过程结束。 但是这样的直接插入排序存在如下问题:直接插入排序对于基本上有序的数列,尤其是当然最好的情...原创 2019-08-22 15:40:26 · 5566 阅读 · 0 评论 -
DSA之十大排序算法第三种:Straight Insertion Sort
直接插入排序相比较于简单粗暴的冒泡和直接选择排序,直接插入排序就略显复杂了。不过直接插入排序相较于 班级学生按身高从高到底进行排序的方式一样,第一个学生先进行站队,第二个学生若是比他低,则站前面否则站后面。无论如何,此时他们二人已经有序,此刻第三个学生来了,同理 找到自己的位置 插进站队里面。一直到最后一名学生也找到自己的位置,整个排队过程结束。道理上是一模一样的。注:我们这里实现的所有排序算法...原创 2019-08-15 00:13:08 · 5620 阅读 · 0 评论 -
DSA之十大排序算法第二种:Straight Selection Sort
直接选择排序直接选择排序在我看来,是一种非常简单粗暴的方法。注:我们这里实现的所有排序算法,统一由小到大 C++实现。排序步骤就是:在这个无序的数列里面,每次都从中选择 或者 挑选最小的那个元素出来,把它放在此次参与排序的序列的第一个位置。然后再从剩下的无序数列里面取出最小的那个元素(此时的它可以视为本数列的第二小),然后同样放在此次参与排序的序列的第一个位置。重复这个 从无序数列取...原创 2019-08-14 21:48:28 · 5694 阅读 · 0 评论 -
DSA之十大排序算法第一种:Bubble sort
冒泡排序说起冒泡排序,作为最简单的排序算法之一,也是我们最为熟悉的排序算法。注:我们这里实现的所有排序算法,统一由小到大 C++实现。排序步骤就是:机械地遍历要排序的数列,相邻的两个数据,两两比较。正序则继续向前发现逆序(前面数据 > 后面数据),则就地交换。完成之后 继续前进(到达数列最后一个元素,不用再进行比较)重复地进行遍历,直至发现数列中不存在逆序就可以停止整个过程 ...原创 2019-08-14 18:16:26 · 5646 阅读 · 0 评论 -
关于《剑指offer》的66道编程题的总结(三)
文章目录(第二十一题)数组中出现次数超过一半的梳子(第二十一题)数组中出现次数超过一半的梳子2019年9月7日01:48:22题目链接如下:https://www.nowcoder.com/practice/e8a1b01a2df14cb2b228b30ee6a92163?tpId=13&tqId=11181&tPage=2&rp=2&ru=/ta/codi...原创 2019-09-07 17:59:03 · 5531 阅读 · 0 评论 -
DSA之十大排序算法第六种:Quick Sort
快速排序 2019年8月23日17:45:21之前我们已经分析过 冒泡排序,我建议:当你在看这篇博客的时候,请先回顾 冒泡排序:详见DSA之十大排序算法第一种:Bubble sort冒泡排序的时间复杂度在最差的情况下:达到了平方级。这当然不符合我们的要求,今天主要详解 最优秀的内部排序中的 Quick Sort。虽然我经常用,说实话 我是怎么用的呢? sort方法!!! C++中的sort 泛...原创 2019-08-27 23:23:30 · 5787 阅读 · 0 评论 -
DSA之十大排序算法第七种:Heap Sort
堆排序 2019年8月31日13:56:51之前我们已经分析过 选择排序,我建议:当你在看这篇博客的时候,请先回顾 选择排序:详见DSA之十大排序算法第二种:Straight Selection Sort 原因暂不解释。听话,看一眼花不了多长时间。注:大顶堆和小顶堆原理相同,这里还是提供堆排序的 升序 C++实现,故而选择 大顶堆逻辑结构。说起堆排序,很容易理解:利用数据结构中 堆的性质...原创 2019-09-01 00:03:54 · 5578 阅读 · 0 评论 -
DSA之十大排序算法第八种:Counting Sort
计数排序 2019年9月1日13:48:16相较于之前的比较式的排序算法,计数排序就大大的不同了。计数排序不是比较排序,排序的速度当然也就快于任何比较排序算法。其基本思想:将待排序的数据值 转化为键存储在额外开辟的数组空间中。对每一个输入的元素data,确定出小于data的元素的个数。于是那么就可以把data 直接放到相应的位置上。它作为一种线性时间复杂度的排序,计数排序要求输入的数据必须...原创 2019-09-01 14:45:56 · 5554 阅读 · 0 评论 -
DSA之十大排序算法第九种:Bucket Sort
桶排序 2019年9月1日22:31:09建议:在看本篇博客时:请先回顾DSA之十大排序算法第八种:Counting Sort 和 DSA之十大排序算法第六种:Quick Sort。桶排序是上一节计数排序的升级版本。其基本思想:就是将数据分到有限个数的木桶里面,然后在具体的每个桶再分别排序(有可能再使用别的排序算法或是以递回方式继续使用桶排序进行排序:这里我们就没必要再自定义操作了,既然数量已...原创 2019-09-02 13:12:53 · 5574 阅读 · 0 评论 -
DSA之十大排序算法第十种:Radix Sort
基数排序 2019年9月2日14:31:03建议:在看本篇博客时:请先回顾DSA之十大排序算法第八种:Counting Sort 和 DSA之十大排序算法第九种:Bucket Sort 。基数排序 vs 计数排序 vs 桶排序的对比如下:这三种排序算法都利用了桶的概念,但对桶的使用方法上有明显差异:Radix Sort:根据键值的每位数字来分配桶;Counting Sort:每个桶只...原创 2019-09-03 00:00:30 · 5633 阅读 · 0 评论 -
树的存储结构
2019年9月3日15:17:35树的存储结构双亲表示法改进1 方便获取孩子结点(度为3)改进2 方便获取孩子结点(只添加长子域)改进1 方便获取各个兄弟结点孩子表示法改进1 按照所需来分配指针域空间改进2 顺序和链式混合使用改进3 双亲孩子表示法孩子兄弟表示法对于树状结构:一对多的结构,使用一段地址连续的存储单元依次存储数据元素,虽然说 是可以将树中所有结点都存储到一个数组中,但是结点的存储...原创 2019-09-03 17:43:41 · 1231 阅读 · 0 评论 -
DSA 经典数据结构与算法 学习心得和知识总结(四) | AVL树
AVL树原创 2019-09-13 22:14:53 · 1097 阅读 · 1 评论 -
关于《剑指offer》的66道编程题的总结(七----本系列结束)
2019年9月10日20:27:25文章目录(第六十题)矩形覆盖(第六十题)矩形覆盖2019年9月10日20:28:15题目链接:题目描述:原创 2019-09-12 17:56:33 · 5338 阅读 · 0 评论 -
DSA 经典数据结构与算法 学习心得和知识总结(三) | BST树
BST树原创 2019-09-12 02:03:41 · 751 阅读 · 2 评论 -
二叉树的四种遍历方式(递归与非递归实现)
2019年9月11日09:13:41二叉树的遍历向来是 二叉树学习和应用的重中之重,虽然树结构 使用递归会使得我们的代码更加简洁,但是在这里 我也把非递归版本代码也进行详解。而二叉树 作为DSA中极为重要的一种数据结构,二叉树的基础学习是给后面学习 更加高级的数据结构做铺垫的。话不多说,先看一下 二叉树的遍历吧。二叉树的遍历基本概念二叉树的遍历方式先序遍历中序遍历后序遍历层次遍历基本概念遍...原创 2019-09-11 16:25:35 · 906 阅读 · 2 评论 -
关于《剑指offer》的66道编程题的总结(六)
2019年9月9日16:37:41文章目录(第五十一题)矩形覆盖(第五十二题)树的子结构(第五十三题)顺时针打印矩阵(第五十一题)矩形覆盖2019年9月9日16:43:33题目链接:https://www.nowcoder.com/practice/72a5a919508a4251859fb2cfb987a0e6?tpId=13&tqId=11163&tPage=1&am...原创 2019-09-10 20:26:03 · 5374 阅读 · 0 评论 -
关于《剑指offer》的66道编程题的总结(五)
注:2019年9月8日21:57:16 这部分主要是解决与二叉树相关的问题文章目录(第四十一题)重建二叉树(第四十一题)重建二叉树2019年9月8日21:58:43题目链接:https://www.nowcoder.com/practice/8a19cbe657394eeaac2f6ea9b0f6fcf6?tpId=13&tqId=11157&tPage=1&r...原创 2019-09-09 16:15:06 · 5343 阅读 · 0 评论 -
树与二叉树基础知识大全解
树和二叉树的基础知识序言树的定义及常见概念 定义 树的常见概念树的结点树的性质:树的存储结构序言2019年9月3日11:31:25 接下来进入树的章节 首先主要是学习树与二叉树的基础知识,为后续二叉树的应用打好铺垫;BST树;AVL树;以及红黑树等。数据结构中知识繁杂,但是都很重要。毕竟数据结构与算法 是我们计算机专业最重要的一门课。来,先看一眼下图:曾经有一个 建工转行要当程序员的老哥...原创 2019-09-08 20:04:27 · 980 阅读 · 0 评论 -
关于《剑指offer》的66道编程题的总结(二)
(第十一题)数值的整数次方2019年9月6日00:10:02题目链接如下:https://www.nowcoder.com/practice/1a834e5e3e1a4b7ba251417554e07c00?tpId=13&tqId=11165&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-i...原创 2019-09-07 01:33:01 · 5573 阅读 · 0 评论 -
关于《剑指offer》的66道编程题的总结(四)
文章目录(第三十题)求1+2+3+----+n(有限制)(第三十题)求1+2+3±—+n(有限制)2019年9月7日17:55:14题目链接如下:原创 2019-09-08 14:07:23 · 5339 阅读 · 0 评论