Skip to content

😍 学习数据结构与算法,夯实编程基础

License

Notifications You must be signed in to change notification settings

doocs/data-structure-and-algorithm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

874a7fe · May 27, 2022

History

15 Commits
Feb 20, 2021
Nov 23, 2020
Jan 13, 2020
Jan 13, 2020
Mar 28, 2020
Jan 13, 2020
Jan 13, 2020
Nov 23, 2020
Jan 13, 2020
Jan 13, 2020
Jan 13, 2020
May 27, 2022
Jan 13, 2020

Repository files navigation

必知必会:数据结构与算法

java-ci prs-welcome doocs-open-source-organization gitter

Algorithms + Data Structures = Programs, — Niklaus Wirth

目前来说,程序员的面试门槛越来越高,很多一线互联网公司的技术面试,都或多或少会考察数据结构与算法相关的题目,掌握数据结构与算法尤为重要。如果你不想永远做一名“代码搬运工”,那就花点时间一起来学习吧。本项目涵盖数据结构与算法所有知识点,内容将在后续不断更新,欢迎持续关注项目最新动态。

数据结构的划分

稀疏矩阵和队列

堆栈

队列

链表

链表介绍

单链表应用实例

单链表大厂面试题

双向链表应用实例

单向环形链表应用场景

单向环形链表介绍

约瑟夫问题

栈的一个实际需求

栈的介绍

栈的应用场景

栈的快速入门

栈实现综合计算器

逆波兰计算器

中缀表达式转换为后缀表达式

递归

递归与递归调用机制

递归-迷宫问题

递归-八皇后问题(回溯算法)

排序算法

排序算法介绍

算法的时空复杂度

冒泡排序

选择排序

插入排序

希尔排序

快速排序

归并排序

基数排序

常用排序算法对比总结

查找算法

线性查找算法

二分查找算法

插值查找算法

斐波那契(黄金分割法)查找算法

哈希表

哈希表的基本介绍

Google 公司的一个上机题

树结构

二叉树

  • 为什么需求树这种数据结构
  • 二叉树遍历:前序、中序、后续
  • 二叉树查找与删除

顺序存储二叉树

  • 顺序存储二叉树的概念
  • 顺序存储二叉树的遍历
  • 顺序存储二叉树应用实例

线索化二叉树

  • 先看一个问题
  • 线索二叉树基本介绍
  • 线索二叉树应用案例
  • 遍历线索化二叉树

树结构应用

堆排序

赫夫曼树

赫夫曼编码

  • 数据压缩与解压
  • 文件压缩与解压

二叉排序树

平衡二叉树(AVL 树)

  • 左旋
  • 右旋
  • 双旋转

多路查找树

二叉树与 B 树

B 树、B+ 树和 B* 树

图基本介绍

图的表示方式

图的深度优先遍历

图的广度优先遍历

图的深度优先 VS 广度优先

10 大常用算法

二分查找算法(非递归)

分治算法

动态规划算法

KMP 算法

贪心算法

普里姆算法

克鲁斯卡尔算法

迪杰斯特拉算法

弗洛伊德算法

马踏棋盘算法