一,数据机构
数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关
1)线性数据结构
数组,栈,队列,链表,哈希表
2)树结构
二叉树,二分搜索书,AVL,红黑树,Treap,Splay,堆,Trie,线段树,K-D树,并查集,哈夫曼树。
3)图结构
邻接矩阵,邻接表。
二,算法
算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。
程序 = 数据结构 + 算法
在计算机的世界里,数据结构无处不在
数据结构练习代码,结构如下:
datastructures -> 数据结构相关
array -> 数组
stack_queues.stack -> 栈
stack_queues.queue -> 队列
linked -> 链表
recursion -> 递归
binary_search_tree -> 二分搜索树
set_map.set -> set集合
set_map.map -> map映射
heap -> 堆
segment_tree -> 线段树
trie -> 字典树(前缀树)
union_find -> 并查集
avl -> AVL平衡树
red_black_tree -> 红黑树
hashtable -> 哈希表
基本算法相关
algorithms
sort -> 排序
heap -> 堆排序
other -> 其他算法相关
thread -> 线程相关
leetcode -> Leetcode练习题
以上,后面会慢慢补充更多数据结构和算法相关的代码
源码地址:https://github.com/wangxp423/ExerciseJava