https://github.com/guqing/datastructure
Learning notes and code examples of Java data structures and algorithms
https://github.com/guqing/datastructure
algorithms datastructure java
Last synced: 4 months ago
JSON representation
Learning notes and code examples of Java data structures and algorithms
- Host: GitHub
- URL: https://github.com/guqing/datastructure
- Owner: guqing
- License: mit
- Created: 2019-09-01T15:31:07.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2021-06-04T07:52:25.000Z (about 4 years ago)
- Last Synced: 2024-12-19T17:47:19.408Z (6 months ago)
- Topics: algorithms, datastructure, java
- Language: Java
- Homepage: https://algorithm.guqing.xyz/
- Size: 18.7 MB
- Stars: 4
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Java Data Structrue
个人学习笔记及总结希望能给需要的人提供一个参考
![]()
![]()
![]()
![]()
![]()
![]()
![]()
## 简介
本项目为Java数据结构和算法学习笔记,主要作者 [@guqing](https://github.com/guqing) 一个Java界的小学生,并不是专业算法选手,希望有专业的小伙伴一起来改进。希望这个笔记能给你在学习算法的过程提供思路和源码方面的参考,全文大致按照数据结构/算法基本介绍,代码实现及测试,几道面试题三个部分来写。
## 笔记目录
[学习笔记](https://algorithm.guqing.xyz/)
[view on github page](https://guqing.github.io/datastructure/docs/algorithms.html)
**线性结构和非线性结构**
- 线性结构
- 非线性结构**稀疏数组(sparse array)**
**队列**- 数组循环队列
- 链表队列
- 最大优先队列
- 最小优先队列
- 索引优先队列**链表**
- 单向链表
- 双向链表
- 单向循环链表**栈**
- 代码实现
- 前缀、中缀、后缀表达式**递归**
- 迷宫问题
- 八皇后问题(回溯法)**算法的时间复杂度**
- 时间频度
- 时间复杂度
- 常见的时间复杂度
- 举例说明时间复杂度
- 平均时间复杂度和最坏时间复杂度
- 算法的空间复杂度**排序算法**
- 冒泡排序
- 选择排序
- 插入排序
- 希尔排序
- 快速排序
- 归并排序
- 基数排序**查找算法**
- 线性查找算法
- 二分查找
- 插值查找
- 斐波那契查找算法(黄金分割法)**哈希表**
**二叉树**- 为什么需要树
- 常用术语
- 二叉树概念
- 二叉树遍历
- 二叉查找树
- 查找和插入
- 有序性相关方法
- 排名
- 删除
- 范围查找
- 遍历
- 测试**平衡查找树**
- 概念
- 四种不平衡范型
- 创建树的基本结构
- 左旋
- 右旋
- 双旋
- 增删查
- 红黑树
- 红黑树操作图解
- 红黑树代码实现
- 插入方法
- 查找方法
- 删除
- 范围查询**哈夫曼树**
- 哈夫曼树创建思路图解
- 代码实现
- 哈夫曼编码
- 代码实现**多路查找树**
- 2-3树
- B树
- 代码实现**图**
- 概念
- 图的表示方式
- 图的深度优先遍历
- 图的广度优先遍历## 书籍推荐
- [《算法 第四版》](https://book.douban.com/subject/10432347/)(推荐,豆瓣评分 9.3,0.4K+人评价):Java 语言描述,算法领域经典的参考书,全面介绍了关于算法和数据结构的必备知识,并特别针对排序、搜索、图处理和字符串处理进行了论述。书的内容非常多,可以说是 Java 程序员的必备书籍之一了。
- [《算法图解》](https://book.douban.com/subject/26979890/)(推荐,豆瓣评分 8.4,0.6K+人评价):入门类型的书籍,读起来比较浅显易懂,适合没有算法基础或者说算法没学好的小伙伴用来入门。示例丰富,图文并茂,以让人容易理解的方式阐释了算法.读起来比较快,内容不枯燥!
- 《C算法》(推荐,豆瓣评分 8.0,48人评价:入门类型的书籍,阐述内容清楚、详尽、易懂与[《算法第四版》](https://book.douban.com/subject/10432347/)是同一作者,介绍了当今最重要的算法,共分2卷,[《C算法(第一卷):基础、数据结构、排序和摸索》](https://book.douban.com/subject/1169844/),[《算法(第二卷:图算法)》](https://book.douban.com/subject/1152528/)。书中提供了用C语言描述的完整算法源程序,并且配有丰富的插图和练习。### 订阅更新
本项目托管在 https://github.com/guqing/datastructure 你可以在 `GitHub `中 star 该项目查看更新。
## 许可证
本作品采用 **MIT许可证** 进行许可。**传播此文档时请注意遵循以上许可协议。** 关于本许可证的更多详情可参考 https://www.mit-license.org/
本着参与比主导更重要的开源精神,我将自己的数据结构与算法学习笔记公开和小伙伴们讨论,希望高手们不吝赐教。
## 如何贡献
如果你发现任何有错误的地方或是想更新/翻译本文档,请给我提[issues](https://github.com/guqing/datastructure/issues)或[pull request](https://github.com/guqing/datastructure/pulls)