Coder Social home page Coder Social logo

algorithms's Introduction

###Algorithms & Data Structures in C++

####目标 ( goal ) :

  1. 经典的算法实现
    (classical algorithms implementations)
  2. 服务器端
    (based on linux/gcc)
  3. 正确,易于使用和改造, 一个头文件一个算法,并附带一个demo.
    (correct! and ease of use, one .header file per algorithm)

####约定 ( Convention ):

  1. 一个算法用一个.h文件表示放到include下. ( one .header file per algorithm. )
  2. 算法演示的demo程序放到src下. ( one demo per algorithm. )
  3. 程序正确通过后,请发起Pull Requests,代码被验证后入库,并在README中发布新算法实现。 (Please Use Fork+Pull Requests !!! Correctness is the most important!)
  4. TAB = 4 space. set ts=4 in vim
  5. Graph的输出格式为 Graphviz Dot格式. (the output format of the graph is in dot of graphviz.) eg: demograph

####已实现 ( Implemented ):

Array shuffle
Prime test(trial division)
Prime test(Miller-Rabin's method)
2D Array
Arbitary Integer
Linear congruential generator
Maximum subarray problem

Bit-Set
Queue
Stack
Binary Heap
Fibonacci Heap
Priority Queue (list based)

Bubble sort
Selection sort
Insertion sort
Radix sort
Quick sort
Merge sort
Heap sort
Double linked list
Skip list
Self-organized linked-list ops (move-to-front, move-ahead-one)
Largest common sequence

Binary search tree
AVL tree
Dynamic order statistics
Red-black tree
Interval tree
Prefix Tree(Trie)
Suffix Tree
B-Tree
Suffix Array

Hash by multiplication
Hash table
Universal hash function
Perfect hash
Java's string hash
FNV-1a string hash
SimHash
Bloom Filter
SHA-1 Message Digest Algorithm
MD5
Base64

Graph data structure
Strongly Connected Components(SCC)
Prim's minimum spanning tree
Kruskal MST
Directed/Undirected graph ops
Breadth First Search
Depth First Search
Dijkstra's algorithm
Bellman-Ford algorithm
Edmonds-Karp Maximal Flow
Push–Relabel algorithm

Huffman Coding
Word segementation(CHN/GB18030) using HMM and viterbi algorithm.
A* algorithm
K-Means
Knuth–Morris–Pratt algorithm
Disjoint-Set
8-Queue Problem
Palindrome

####贡献者 ( Contributors ) :
Samana: for heavy work of MSVC compatability wycg1984: for K-Means xmuliang: for HeapSort, Kruskal MST wyh267: for base64, LRU, bubble sort, selection sort ZhangYou0122: Push-Relabel algorithm, Suffix Tree
UsingtcNower: Suffix Array afernandez90: AVL trees

algorithms's People

Contributors

afernandez90 avatar athrunarthur avatar blackball avatar cdkr avatar jackeylu avatar pierredavidbelanger avatar samana avatar usingtcnower avatar wycg1984 avatar wyh267 avatar xiongxoy avatar xtaci avatar zhangyou0122 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.