Algorithm
Search…
介绍
Java Data Structrue
个人学习笔记及总结希望能给需要的人提供一个参考

简介

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

笔记目录

线性结构和非线性结构
  • 线性结构
  • 非线性结构
稀疏数组(sparse array) 队列
  • 数组循环队列
  • 链表队列
  • 最大优先队列
  • 最小优先队列
  • 索引优先队列
链表
  • 单向链表
  • 双向链表
  • 单向循环链表
  • 代码实现
  • 前缀、中缀、后缀表达式
递归
  • 迷宫问题
  • 八皇后问题(回溯法)
算法的时间复杂度
  • 时间频度
  • 时间复杂度
  • 常见的时间复杂度
  • 举例说明时间复杂度
  • 平均时间复杂度和最坏时间复杂度
  • 算法的空间复杂度
排序算法
  • 冒泡排序
  • 选择排序
  • 插入排序
  • 希尔排序
  • 快速排序
  • 归并排序
  • 基数排序
查找算法
  • 线性查找算法
  • 二分查找
  • 插值查找
  • 斐波那契查找算法(黄金分割法)
哈希表 二叉树
  • 为什么需要树
  • 常用术语
  • 二叉树概念
  • 二叉树遍历
  • 二叉查找树
  • 查找和插入
  • 有序性相关方法
  • 排名
  • 删除
  • 范围查找
  • 遍历
  • 测试
平衡查找树
  • 概念
  • 四种不平衡范型
  • 创建树的基本结构
  • 左旋
  • 右旋
  • 双旋
  • 增删查
  • 红黑树
  • 红黑树操作图解
  • 红黑树代码实现
  • 插入方法
  • 查找方法
  • 删除
  • 范围查询
哈夫曼树
  • 哈夫曼树创建思路图解
  • 代码实现
  • 哈夫曼编码
  • 代码实现
多路查找树
  • 2-3树
  • B树
  • 代码实现
  • 概念
  • 图的表示方式
  • 图的深度优先遍历
  • 图的广度优先遍历

书籍推荐

  • 《算法 第四版》(推荐,豆瓣评分 9.3,0.4K+人评价):Java 语言描述,算法领域经典的参考书,全面介绍了关于算法和数据结构的必备知识,并特别针对排序、搜索、图处理和字符串处理进行了论述。书的内容非常多,可以说是 Java 程序员的必备书籍之一了。
  • 《算法图解》(推荐,豆瓣评分 8.4,0.6K+人评价):入门类型的书籍,读起来比较浅显易懂,适合没有算法基础或者说算法没学好的小伙伴用来入门。示例丰富,图文并茂,以让人容易理解的方式阐释了算法.读起来比较快,内容不枯燥!
  • 《C算法》(推荐,豆瓣评分 8.0,48人评价:入门类型的书籍,阐述内容清楚、详尽、易懂与《算法第四版》是同一作者,介绍了当今最重要的算法,共分2卷,《C算法(第一卷):基础、数据结构、排序和摸索》《算法(第二卷:图算法)》。书中提供了用C语言描述的完整算法源程序,并且配有丰富的插图和练习。

订阅更新

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

许可证

本作品采用 MIT许可证 进行许可。传播此文档时请注意遵循以上许可协议。 关于本许可证的更多详情可参考 https://www.mit-license.org/
本着参与比主导更重要的开源精神,我将自己的数据结构与算法学习笔记公开和小伙伴们讨论,希望高手们不吝赐教。

如何贡献

如果你发现任何有错误的地方或是想更新/翻译本文档,请给我提issuespull request
Last modified 2yr ago