计算机常用基础算法
jopen 9年前
Algorithms playground for common questions solved in Java syntax.
This repository contains my solution for some common algorithms. I've created this repository to learn about algorithms and improve solving different common computer science problems. I'll try to add more solutions if I have time :)
Each solved problem has a program written in Java. Every solution is tested and some problems contains more than one solution with different implementations.
You can check the solution executing tests inside tests directory. Some of this problems have been resolved using TDD.
Problems
arrays
commons
- Hex conversion utility - 进制转换工具
- Majority Number - 大多数,超过一半的数
- Maximum product - 最大乘积
- TOPK algorithm - TOP算法
graph
- Dijkstra algorithm - 迪杰斯特拉算法
- Directed graph Depth First and Breadth-First by Adjacency table - 邻接表实现有向图深度优先和广度优先
- Directed graph Depth First and Breadth-First by Adjacency Matrix - 邻接矩阵实现有向图深度优先和广度优先
- Floyd Warshall - 弗洛伊德算法
- Kruskal - 克鲁斯卡尔算法
- Prim - 普里姆算法
- Undirected graph Depth First and Breadth-First by Adjacency table - 邻接表实现无向图深度优先和广度优先
- Undirected graph Depth First and Breadth-First by Adjacency Matrix - 邻接矩阵实现无向图深度优先和广度优先
matrix
multithread
similarity
Sorting Algorithms
Chinese to Spelling
Stack
Strings
- Binary Search - 二分查找
- Combination - 组合
- Jaccard similarity coefficient - 杰卡德相似度系数
- Longest common subsequence - 最长公共子序列
- Longest common substring 1 - 最长公共子串1
- Longest common substring 2 - 最长公共子串2
- Levenshtein Distance - 编辑距离
- Longest decreasing subsequence - 最长递减子序列
- PatternStringMatch - 模式串查找
- Permutation - 全排列
- Lexicographical sorting - 字典序排序
trees
- Depth-first traversal of a binary tree - 二叉树的深度优先遍历
- Get all path by given a number - 二叉树中结点值的和为输入整数的所有路径
- Level binary tree traversal - 二叉树的层次遍历
- Binary tree traversal - 二叉树的遍历
- Verify Sequence Of Binary search tree - 验证二叉搜索树序列
Design Patterns
- Deep Clone - 深拷贝
- Singleton - 单例
- Static Proxy - 静态代理
- JDK Dynamic Proxy - JDK实现动态代理
- CGLib Dynamic Proxy - CGLib实现动态代理