天天看点

Java数据结构和算法

1.几个经典的算法面试题(1)

2.几个经典的算法面试题(2)

3.内容介绍和授课方式

4.数据结构和算法的关系

5.编程中实际遇到的几个问题

6.线性结构和非线性结构

7.稀疏数组的应用场景

8.稀疏数组转换的思路分析

9.稀疏数组的代码实现

10.队列的应用场景和介绍

11.数组模拟队列的思路分析

12.数组模拟队列代码实现(1)

13.数组模拟队列代码实现(2)

14.数组模拟环形队列思路分析图

15.数组模拟环形队列实现

16.单链表介绍和内存布局

17.单链表创建和遍历的分析实现

18.单链表按顺序插入节点

19.单链表节点的修改

20.单链表节点的删除和小结

21.单链表新浪面试题

22.单链表腾讯面试题

23.单链表百度面试题

24.双向链表增删改查分析图解

25.双向链表增删改查代码实现

26.双向链表功能测试和小结

27.环形链表介绍和约瑟夫问题

28.约瑟夫问题分析图解和实现(1)

29.约瑟夫问题分析图解和实现(2)

30.栈的应用场景和介绍

31.栈的思路分析和代码实现

32.栈的功能测试和小结

33.栈实现综合计算器-思路分析(1)

34.栈实现综合计算器-代码实现(2)

35.栈实现综合计算器-代码实现(3)

36.前缀 中缀 后缀表达式规则

37.逆波兰计算器分析和实现(1)

38.逆波兰计算器分析和实现(2)

39.中缀转后缀表达式思路分析

40.中缀转后缀表达式代码实现(1)

41.中缀转后缀表达式代码实现(2)

42.完整版逆波兰计算器和小结

43.递归应用场景和调用机制

44.递归能解决的问题和规则

45.迷宫回溯问题分析和实现(1)

46.迷宫回溯问题分析和实现(2)

47.八皇后问题分析和实现(1)

48.八皇后问题分析和实现(2)

49.八皇后问题分析和实现(3)

50.排序算法介绍和分类

51.时间频度介绍和特点

52.时间复杂度计算和举例说明

53.平均和最坏时间复杂度介绍

54.冒泡排序算法思路图解

55.冒泡排序算法代码实现

56.冒泡排序算法优化和总结

57.选择排序算法思路图解

58.选择排序算法代码实现

59.选择排序算法速度测试

60.插入排序算法思路图解

61.插入排序算法代码实现

62.插入排序算法速度测试

63.希尔排序算法思路图解

64.希尔排序[交换式]算法实现

65.希尔排序[移位式]算法实现

66.快速排序算法思路图解

67.快速排序算法代码实现

68.快速排序算法速度测试

69.归并排序算法思路图解

70.归并排序算法代码实现

71.归并排序算法速度测试

72.基数排序算法思路图解

73.基数排序算法代码实现(1)

74.基数排序算法代码实现(2)

75.基数排序算法注意事项

76.排序算法时间复杂度比较

77.线性查找分析和实现

78.二分查找算法思路图解

79.二分查找算法代码实现

80.二分查找算法功能完善

81.插值查找算法工作原理

82.插值查找算法代码实现

83.斐波那契查找算法原理

84.斐波那契查找代码实现

85.斐波那契查找算法小结

86.哈希表的介绍和内存布局

87.哈希表实现思路图解

88.哈希表代码实现(1)

89.哈希表代码实现(2)

90.数组 链表 树存储方式分析

91.二叉树的概念和常用术语

92.前序中序后序遍历二叉树图解

93.前序中序后序遍历代码实现(1)

94.前序中序后序遍历代码实现(2)

95.前序中序后序查找思路图解

96.前序中序后序查找代码实现(1)

97.前序中序后序查找代码实现(2)

98.二叉树删除结点思路图解

99.二叉树删除结点代码实现

100.顺序存储二叉树思路图解

101.顺序存储二叉树代码实现

102.线索化二叉树的介绍

103.线索化二叉树思路图解

104.线索化二叉树代码实现1

105.线索化二叉树代码实现2

106.遍历线索化二叉树实现

107.大顶堆和小顶堆图解说明

108.堆排序的思路图解

109.堆排序的代码实现1

110.堆排序的代码实现2

111.堆排序的速度测试和小结

112.赫夫曼树的基本介绍

113.赫夫曼树创建步骤图解

114.赫夫曼树创建代码实现

115.变长编码的举例说明

116.赫夫曼编码的原理图解

117.数据压缩-创建赫夫曼树思路

118.数据压缩-创建赫夫曼树实现

119.数据压缩-生成赫夫曼编码表

120.数据压缩-赫夫曼编码字节数组

121.数据压缩-赫夫曼字节数组封装

122.数据解压-字节转二进制字符串

123.数据解压-赫夫曼解码

124.使用赫夫曼编码压缩文件

125.使用赫夫曼编码解压文件

126.赫夫曼编码注意事项

127.二叉排序树(BST)的介绍

128.二叉排序树(BST)创建和遍历

129.二叉排序树删除结点思路图解

130.二叉排序树删除叶子结点(1)

131.二叉排序树删除叶子结点(2)

132.BST删除有一颗子树的结点

133.BST删除有二颗子树的结点

134.BST删除结点的注意事项

135.平衡二叉树(AVL树)介绍

136.AVL树左旋转思路图解

137.AVL树高度求解

138.AVL树左旋转代码实现

139.AVL树右旋转图解和实现

140.AVL树双旋转图解和实现

141.平衡二叉树(AVL树)小结

142.多叉树原理图解

143.2-3树原理图解

144.B树和B加树原理图解

145.B星树和多路查找树小结

146.图的基本介绍和存储形式

147.图的创建图解和代码实现

148.图的深度优先(DFS)算法图解

149.图的深度优先(DFS)代码实现

150.图的广度优先(BFS)算法图解

151.图的广度优先(BFS)代码实现

152.DFS和BFS比较及图小结

153.二分查找非递归算法分析实现

154.分治算法的设计模式

155.分治算法解决汉诺塔问题

156.动态规划算法基本介绍

157.动态规划算法解决背包问题1

158.动态规划算法解决背包问题2

159.动态规划算法解决背包问题3

160.暴力匹配算法解决字串匹配问题

161.KMP算法解决字串匹配思路图解

162.KMP算法解决字串匹配代码实现

163.动态规划算法和KMP算法小结

164.贪心算法的基本介绍

165.贪心算法解决集合覆盖思路图解

166.贪心算法解决集合覆盖代码实现

167.贪心算法解决集合覆盖注意事项

168.普利姆算法(Prim)和MST介绍

169.Prim算法解决修路问题思路图解

170.Prim算法解决修路问题生成图

171.Prim算法解决修路问题代码实现

172.克鲁斯卡尔((Kruskal)算法图解

173.Kruskal算法解决公交问题(1)

174.Kruskal算法解决公交问题(2)

175.Kruskal算法解决公交问题(3)

176.Kruskal算法解决公交问题(4)

177.Kruskal算法解决公交问题小结

178.迪杰斯特拉(Dijkstra)算法基本介绍

179.Dijkstra算法思路图解

180.Dijkstra算法解决最短路径问题(1)

181.Dijkstra算法解决最短路径问题(2)

182.Dijkstra算法解决最短路径问题(3)

183.Dijkstra算法解决最短路径问题(4)

184.-Dijkstra算法解决最短路径问题(5)

185.弗洛伊德(Floyd)算法基本介绍

186.弗洛伊德(Floyd)算法思路图解

187.Floyd算法解决最短路径问题(1)

188.Floyd算法解决最短路径问题(2)

189.骑士周游问题和游戏说明

190.骑士周游问题思路图解

191.骑士周游回溯算法代码实现(1)

192.骑士周游回溯算法代码实现(2)

193.骑士周游回溯算法代码实现(3)

194.骑士周游回溯算法用贪心算法优化

195.结束语

继续阅读