by xtaci

xtaci /algorithms

Algorithms & Data structures in C++.

3.7K Stars 1.3K Forks Last release: over 6 years ago (v1.0) MIT License 511 Commits 1 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

Algorithms & Data Structures in C++

Build Status

目标 ( 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 ):

| Name | File | |------|------| |Array shuffle| | |Prime test(trial division)|| |Prime test(Miller-Rabin's method)|| |2D Array|| |Arbitrary 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|| |Shell sort|| |Radix sort|| |Quicksort|| |Merge sort|| |Double linked list|| |Skip list|| |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|| |Strongly Connected Components(SCC)|| |Prim's minimum spanning tree|| |Kruskal MST|| |Breadth First Search|| |Depth First Search|| |Dijkstra's algorithm|| |Bellman-Ford algorithm|| |Edmonds-Karp Maximal Flow|| |Push–Relabel algorithm|| |Huffman Coding|| |Word segementation|| |A* algorithm|| |K-Means|| |Knuth–Morris–Pratt algorithm|| |Disjoint-Set|| |8-Queue Problem|| |Palindrome|| |LCA using Binary Lifting||

贡献者 ( 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

支持此项目 ( Donations ) :


We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.