介绍

Java Data Structrue

个人学习笔记及总结希望能给需要的人提供一个参考 GitHub last commit GitHub License GitHub code size in bytes GitHub language count Travis build CodeFactor Grade Github Author

简介

本项目为Java数据结构和算法学习笔记,主要作者 @guqingarrow-up-right 一个Java界的小学生,并不是专业算法选手,希望有专业的小伙伴一起来改进。希望这个笔记能给你在学习算法的过程提供思路和源码方面的参考,全文大致按照数据结构/算法基本介绍,代码实现及测试,几道面试题三个部分来写。

笔记目录

学习笔记arrow-up-right

view on github pagearrow-up-right

线性结构和非线性结构

  • 线性结构

  • 非线性结构

稀疏数组(sparse array) 队列

  • 数组循环队列

  • 链表队列

  • 最大优先队列

  • 最小优先队列

  • 索引优先队列

链表

  • 单向链表

  • 双向链表

  • 单向循环链表

  • 代码实现

  • 前缀、中缀、后缀表达式

递归

  • 迷宫问题

  • 八皇后问题(回溯法)

算法的时间复杂度

  • 时间频度

  • 时间复杂度

  • 常见的时间复杂度

  • 举例说明时间复杂度

  • 平均时间复杂度和最坏时间复杂度

  • 算法的空间复杂度

排序算法

  • 冒泡排序

  • 选择排序

  • 插入排序

  • 希尔排序

  • 快速排序

  • 归并排序

  • 基数排序

查找算法

  • 线性查找算法

  • 二分查找

  • 插值查找

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

哈希表 二叉树

  • 为什么需要树

  • 常用术语

  • 二叉树概念

  • 二叉树遍历

  • 二叉查找树

  • 查找和插入

  • 有序性相关方法

  • 排名

  • 删除

  • 范围查找

  • 遍历

  • 测试

平衡查找树

  • 概念

  • 四种不平衡范型

  • 创建树的基本结构

  • 左旋

  • 右旋

  • 双旋

  • 增删查

  • 红黑树

  • 红黑树操作图解

  • 红黑树代码实现

  • 插入方法

  • 查找方法

  • 删除

  • 范围查询

哈夫曼树

  • 哈夫曼树创建思路图解

  • 代码实现

  • 哈夫曼编码

  • 代码实现

多路查找树

  • 2-3树

  • B树

  • 代码实现

  • 概念

  • 图的表示方式

  • 图的深度优先遍历

  • 图的广度优先遍历

书籍推荐

订阅更新

本项目托管在 https://github.com/guqing/datastructurearrow-up-right 你可以在 GitHub中 star 该项目查看更新。

许可证

本作品采用 MIT许可证 进行许可。传播此文档时请注意遵循以上许可协议。 关于本许可证的更多详情可参考 https://www.mit-license.org/arrow-up-right

本着参与比主导更重要的开源精神,我将自己的数据结构与算法学习笔记公开和小伙伴们讨论,希望高手们不吝赐教。

如何贡献

如果你发现任何有错误的地方或是想更新/翻译本文档,请给我提issuesarrow-up-rightpull requestarrow-up-right

Last updated

Was this helpful?