目录

耗时3年写了一本数据结构与算法pdf开源了

耗时3年写了一本数据结构与算法pdf!开源了

前言

大家好,我是bigsai,很早就在写博客,我将csdn的文章整理成了一个pdf,并且开源到github上!

自己写东西断断续续也不少时间了,也写了不少东西(虽然是偏向小白),这个其实花费的时间还是比较多的,这次的话主要将数据结构与算法中一些文章整理出来,初步整理成一版pdf,先分享给大家。

因为在整理pdf方面没啥经验,目前还是md直接导出的pdf的,看了下有些部分代码太长太占页面,有些部分图片太长也很占地方,有部分文章还尝试不同风格显得不那么条理,有些地方页面突然分割也很影响视觉体验……

虽然有很多缺点和问题,这些地方后面也在想办法考虑一点点优化,也欢迎大伙提出宝贵的意见!当然这个仓库也是开源的,有兴趣一起维护的可以维护。

更新会同步到Github仓库中,也会告知大家。近期会将以前写的其他数据结构算法部分(未优化)优化更新上去。

csdn专栏

github地址

https://i-blog.csdnimg.cn/blog_migrate/010f446557c23f70f20482d2d818b461.png

主要内容

  1. 理论基础搭建

    • 绪论基础知识 :理解数据结构的相关概念,熟悉时间复杂度和空间复杂度。

    • 写给小白硬核递归 :通过解决经典问题,深入理解递归,掌握记忆化递归的妙用。

      https://i-blog.csdnimg.cn/blog_migrate/4f00a7812bba439ee14b9e7c1f97a304.png

  2. 线性结构的掌握

    • 图解线性表 :手写顺序表和链表,理解带头结点和不带头结点链表的实现区别。
    • 图解双链表 :手写双链表,考虑好节点直接联系,特别是考研重点。
  3. 栈与队列的熟练使用

    • :掌握后进先出规则,实现上用顺序表和链表考虑区别。
    • 队列 :理解先进先出规则,实现上使用循环数组和链表分别实现。
  4. 更高级的线性结构

    • 跳表 :了解跳表的增删改查原理和流程,拓宽对链表的认识。
    • 约瑟夫环问题 :通过链表法、List模拟、公式法逐步深入这个问题。
  5. 树的深入学习

    • 二叉树层序遍历 :学会使用队列进行层序遍历,解决二叉树之字形遍历。
    • 二叉树前中后遍历 :熟练掌握非递归方式遍历,建立对树结构的全面理解。
    • 二叉搜索(查找)树 :学会查找方式和删除节点逻辑。
    • 二叉平衡(AVL)树 :了解平衡二叉树的旋转方式,以及不同平衡方式的应用。
  6. 其他重要数据结构

    • 哈夫曼树 :理解哈夫曼树的weight计算方式和哈夫曼编码。

    • 字典(Trie)树 :手写字典树,熟悉其应用场景和优势。

    • 优先队列 :了解借助堆的运行原理。

    • 并查集(不相交集合) :手写并查集,理解路径压缩的优势。

      https://i-blog.csdnimg.cn/blog_migrate/88ac774faa8f860cfdc4b17c9e9936a2.png

  7. 问题解决方法的学习

    • 回溯算法 :通过解经典问题如八皇后问题,深刻理解回溯思想。
    • 分治算法 :学会先分后合并,解决经典问题如二分搜索、快排、归并排序、最近点对等。
    • 搜索算法 :深度优先搜索、广度优先搜索,解决问题如蓝桥杯,提高解决实际问题的能力。
    • 拓扑排序 :理解图论算法,得到一个前后的顺序序列。
    • Dijkstra算法 :了解图论单源最短路径,队列+贪心实现。
    • Floyd算法 :了解图论多源最短路径,代码简短但需要深刻理解。
    • 最小生成树算法 :Prim和Kruskal,了解不同贪心策略的应用。
  8. 位运算与数论算法

    • 位运算 :介绍几种位运算,解决大部分经典位运算问题。

    • 求素数 :掌握素数筛和欧拉筛的应用。

    • 快速幂 :数论算法,掌握非递归、递归写法,了解矩阵快速幂。

      https://i-blog.csdnimg.cn/blog_migrate/e09681d81d56f3213e862d2ccc680a45.png

  9. 大数运算

    • 大数加减乘除 :手写大数运算,了解大数除法的思想。
  10. 十大排序算法

    • 冒泡排序、快速排序 :了解交换类排序的原理和应用。
    • 插入排序、希尔排序 :理解插入类排序的方法和优势。
    • 归并排序 :学会归并类排序的实现。
    • 简单选择排序、堆排序 :掌握选择类排序的原理。
    • 桶排序、计数排序、基数排序 :了解桶类排序的应用场景和实现。
    • 双轴快排 :优化快排的方法,深入理解排序算法的差异。

推荐资料

  1. 书籍
    • 《算法导论》 :经典之作,系统全面地介绍了算法和数据结构。
    • 《数据结构与算法分析》 :作者Mark Allen Weiss,深入浅出地讲解数据结构与算法。
    • 《剑指Offer》 :针对面试算法题的详尽解析,适合入门和面试准备。
  2. 在线教程
    • LeetCode :刷题神器,

csdn专栏

github地址

持续更新中,欢迎star支持 !如果需要pdf 欢迎添加我 bigsai66 备注csdn 发你哈!