avk959 / Lgenerics
Licence: apache-2.0
Generic algorithms and data structures for Lazarus/Free Pascal
Stars: ✭ 59
Programming Languages
pascal
1382 projects
Projects that are alternatives of or similar to Lgenerics
Flatbush
A very fast static spatial index for 2D points and rectangles in JavaScript
Stars: ✭ 1,031 (+1647.46%)
Mutual labels: algorithm
Algo Explorer
Android app for learning algorithms in Computer Science
Stars: ✭ 49 (-16.95%)
Mutual labels: algorithm
Pathfinding Lab
Run, test and compare all algorithms and heuristic functions
Stars: ✭ 58 (-1.69%)
Mutual labels: algorithm
Jobinterviewalgorithms
A directory of classic algorithms that you will find when interviewing for software engineering jobs.
Stars: ✭ 46 (-22.03%)
Mutual labels: algorithm
Data Structure And Algorithms
A complete and efficient guide for Data Structure and Algorithms.
Stars: ✭ 48 (-18.64%)
Mutual labels: algorithm
Nevae
Code and data for "NeVAE: A Deep Generative Model for Molecular Graphs", AAAI 2019
Stars: ✭ 44 (-25.42%)
Mutual labels: graphs
Overhead Camera People Counter
People counting algorithm using an overhead video camera
Stars: ✭ 58 (-1.69%)
Mutual labels: algorithm
Vsalert
An drop-in replacement for UIAlertController with more power and better looks.
Stars: ✭ 48 (-18.64%)
Mutual labels: algorithm
Interview Guide
Coding/technical interview guide: data structures, algorithms, complexity analyses, interview questions
Stars: ✭ 54 (-8.47%)
Mutual labels: algorithm
Al Go Rithms
🎵 Algorithms written in different programming languages - https://zoranpandovski.github.io/al-go-rithms/
Stars: ✭ 1,036 (+1655.93%)
Mutual labels: algorithm
Awesome Java Leetcode
👑 LeetCode of algorithms with java solution(updating).
Stars: ✭ 8,297 (+13962.71%)
Mutual labels: algorithm
Lazarus addon
the original lazarus-recovery firefox add-on with some slight modifications -mainly removing the Donation nag
Stars: ✭ 56 (-5.08%)
Mutual labels: lazarus
LGenerics
Collection of generic algorithms and data structures entirely written in/for FPC and Lazarus. Started as a self-education project, it now seems quite comfortable and fast. In order to use it (FPC 3.2 and higher and Lazarus 1.9.0 and higher):
-
open and compile package lgenerics/LGenerics.lpk.
-
add LGenerics package to project dependencies.
Implemented primitives:
- stack(unit lgStack)
- queue(unit lgQueue)
- deque(unit lgDeque)
- vector(unit lgVector)
- vector of bits(unit lgVector)
- priority queue based on binary heap(unit lgPriorityQueue)
- priority queue with key update and melding based on pairing heap(unit lgPriorityQueue)
- sorted list(unit lgList)
- hashed list - array based list with the ability to fast search by key(unit lgList)
- hashset(unit lgHashSet)
- fine-grained concurrent hashset(unit lgHashSet)
- sorted set(unit lgTreeSet)
- set of arbitrary size(unit lgUtil, TGSet)
- hash multiset(unit lgHashMultiSet)
- fine-grained concurrent hashmultiset(unit lgHashMultiSet)
- sorted multiset(unit lgTreeMultiSet)
- hashmap(unit lgHashMap)
- fine-grained concurrent hashmap(unit lgHashMap)
- sorted map(unit lgTreeMap)
- hash multimap(unit lgMultiMap)
- tree multimap(unit lgMultiMap)
- list miltimap(unit lgMultiMap)
- bijective map(unit lgBiMap)
- sparse 2D table(unit lgTable2D)
- disjoint set(unit lgHashSet)
- AVL tree(unit lgAvlTree)
- red-black tree(unit lgRbTree)
- some treap variants(unit lgTreap)
- general rooted tree(unit lgRootTree)
- sparse labeled undirected graph(unit lgSimpleGraph)
- sparse labeled directed graph(unit lgSimpleDigraph)
features:
- extended IEnumearble interface - filtering, mapping, etc.
- lite containers based on advanced records
Implemented graph features:
- core functions:
- vertices/edges addition/removal/query/enumeration, edge contraction, degree
- load/save to own binary format, primitive export to DOT format
- connectivity:
- connected/strongly connected components, bipartite detection, degeneracy, k-core
- articulation points, bridges, biconnected components
- edge-connectivity
- traversals:
- BFS/DFS traversals with visitors,
- cycle/negative cycle detection,
- topological sort
- operations:
- induced subgraphs, complement, reverse, union, intersect, symmetric difference,
- chordality testing
- planarity testing: FMR Left-Right Planarity algorithm
- distance within graph:
- eccentricity, radius, diameter, center, periphery
- matching:
- maximum cardinality matching on bipartite/arbitrary graphs
- minimum/maximum weight matching on bipartite graphs
- dominators in flowgraps: simple iterative and Semi-NCA algorithms
- some suggestions for NP-hard problems:
- maximum independent set, maximal independent sets enumeration
- maximum clique, cliques enumeration
- minimum vertex cover, minimal vertex covers enumeration
- vertex coloring, approximations and exact
- minimum dominating set
- Hamiltonian cycles and paths
- local search TSP approximations, BnB TSP solver
- minimum spanning trees: Prims's and Kruskal's algorithms
- single source shortest paths:
- Dijkstra with pairing heap, A*, Bellman-Ford-Moor with Tarjan's subtree disassembly(BFMT)
- single pair shortest paths:
- Dijkstra with binary heap, bidirection Dijkstra, A*, NBA*
- all pairs shortest paths:
- Floyd–Warshall, Johnson, BFMT
- networks:
- maximum flow: push/relabel, capacity scaling Dinitz
- minimum-cost flow: Busacker-Gowen, cost scaling push/relabel algorithm
- global minimum cut: Stoer–Wagner, Nagamochi-Ibaraki
Algorithms on arrays and vectors(mostly unit lgArrayHelpers):
- reverse, right/left cyclic shifts
- permutations
- binary search
- N-th order statistics
- inversion counting
- distinct values selection
- quicksort
- introsort
- dual pivot quicksort
- mergesort
- timsort(unit lgMiscUtils)
- counting sort
- radix sort
- translation of Orson Peters' PDQSort algorithm
- static segment tree
- ...
Algorithms on strings
- Boyer-Moore string matching algorithm(in Fast Search variant), case sensitive and case insensitive(unit lgStrHelpers)
- Boyer-Moore-Horspool-Raita algorithm(unit lgStrHelpers)
Other:
- non-cryptogarphic hashes(unit lgHash):
- Yann Collet's xxHash32, xxHash64
- Austin Appleby's MurmurHash2, MurmurHash2A, MurmurHash3_x86_32, MurmurHash64A
- brief and dirty implementation of futures concept(unit lgAsync)
- brief channel implementation(unit lgAsync)
- brief implementation of thread pool(unit lgAsync)
- 128-bit integers(unit lgInt128)
- JSON validator/parser/generator(unit lgJson)
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].