/DatastructureAndAlgorithm

Some Datastructure and Algorithm imp

Primary LanguageJava

some algorithm and datastructure

Algorithm

Sort algorithm

  1. Bubble sort 冒泡排序
  2. Select sort 选择排序
  3. Insert sort 插入排序
  4. Merge sort 归并排序
  5. Quick sort 快速排序
  6. Shell sort 希尔排序
  7. Heap sort 堆排序

Search algorithm

  1. Binary search 二分查找
  2. Sequence search 顺序查找

Tree algorithm

  1. CalcTreeLevel 计算树的层高(递归实现和队列实现)
  2. ReverseTree 翻转二叉树(递归实现)
  3. TreeTraversal 二叉树的三种遍历(递归实现)

Graph algorithm

  1. DFS 图的深度优先遍历
  2. BFS 图的广度优先遍历
  3. LazyPrim 普里姆最小生成树算法
  4. OptimizePrim 普里姆算法优化版
  5. Kruskal 克鲁斯卡尔最小生成树算法
  6. Dijkstra 单源最短路径算法
  7. BellmanFord 单源最短路径算法

Num algorithm

  1. TwoSum 判断一个有序数组中是否存在两个数的和等于输入的值
  2. JumpFloor 青蛙跳台阶
  3. GetLeatNumers 寻找最小的K个数
  4. FindNonRepeatNum 查找没有重复的数字
  5. NumAdd 不使用四则运算做加法
  6. FindMaxSequenceChildSum 寻找最大的连续子序列和

Str algorithm

  1. BruteForce BF字符串匹配算法
  2. KMPmatch KMP字符串匹配算法

DataStructure

List(列表)

  1. Arraylist 顺序表
  2. Linkedlist 线性链表

Stack(栈)

  1. ArrayStack 数组栈
  2. LinkedStack 链表栈

Queue(队列)

  1. ArrayQueue 数组双端循环队列
  2. LinkedQueue 链表双端队列
  3. PriorityQueue 优先队列

Heap(堆)

  1. MaxHeap 最大堆
  2. MinHeap 最小堆
  3. IndexMinHeap 最小索引堆
  4. PriorityHeap 优先堆
  5. LeftistHeap 左式堆

Tree(树)

  1. BinaryTree 二叉树
  2. BinaryTree 二叉树V2
  3. AVLTree 平衡二叉树
  4. Trie 前缀查找树

Graph(图)

  1. DenseGraph 稠密图
  2. SparseGraph 稀疏图
  3. DenseWeightGraph 带稠密疏图
  4. SparseWeightGraph 带权稀疏图

Union(并查集)

  1. UnionFind 并查集
  2. QuickUnion 并查集优化版
  3. QuickUnionV2 并查集Rank优化版
  4. QuickUnionV3 并查集路径压缩优化版