All Projects → justcoding121 → Advanced Algorithms

justcoding121 / Advanced Algorithms

Licence: mit
100+ algorithms & data structures generically implemented in C#.

Programming Languages

csharp
926 projects

Projects that are alternatives of or similar to Advanced Algorithms

Algorithms
A collection of common algorithms and data structures implemented in java, c++, and python.
Stars: ✭ 142 (-81.12%)
Mutual labels:  algorithms, data-structures, graph-algorithms, sorting-algorithms
Dsa Geeksclasses
DSA-Self Paced With Doubt Assistance Course Solutions in Python (Python 3)
Stars: ✭ 137 (-81.78%)
Mutual labels:  algorithms, data-structures, graph-algorithms, sorting-algorithms
Data structure and algorithms library
A collection of classical algorithms and data-structures implementation in C++ for coding interview and competitive programming
Stars: ✭ 133 (-82.31%)
Mutual labels:  algorithms, data-structures, graph-algorithms, sorting-algorithms
DSA
Data Structures and Algorithms
Stars: ✭ 13 (-98.27%)
Mutual labels:  avl-tree, graph-algorithms, sorting-algorithms, heap
Javascript Datastructures Algorithms
📚 collection of JavaScript and TypeScript data structures and algorithms for education purposes. Source code bundle of JavaScript algorithms and data structures book
Stars: ✭ 3,221 (+328.32%)
Mutual labels:  data-structures, graph-algorithms, sorting-algorithms, avl-tree
C Sharp Algorithms
📚 📈 Plug-and-play class-library project of standard Data Structures and Algorithms in C#
Stars: ✭ 4,684 (+522.87%)
Mutual labels:  algorithms, data-structures, graph-algorithms, sorting-algorithms
Learn some algorithm and data structure
从零开始回顾一下最简单最基础的算法与数据结构
Stars: ✭ 38 (-94.95%)
Mutual labels:  algorithms, data-structures, graph-algorithms, sorting-algorithms
Algodeck
An Open-Source Collection of 200+ Algorithmic Flash Cards to Help you Preparing your Algorithm & Data Structure Interview 💯
Stars: ✭ 4,441 (+490.56%)
Mutual labels:  algorithms, data-structures, sorting-algorithms, heap
Data Structures
Common data structures and algorithms implemented in JavaScript
Stars: ✭ 139 (-81.52%)
Mutual labels:  algorithms, data-structures, graph-algorithms
Data Structures With Go
Data Structures with Go Language
Stars: ✭ 121 (-83.91%)
Mutual labels:  algorithms, graph-algorithms, sorting-algorithms
Sc
Common libraries and data structures for C.
Stars: ✭ 161 (-78.59%)
Mutual labels:  algorithms, data-structures, heap
py-algorithms
Algorithms and Data Structures, solutions to common CS problems.
Stars: ✭ 26 (-96.54%)
Mutual labels:  graph-algorithms, data-structures, sorting-algorithms
Java
All Algorithms implemented in Java
Stars: ✭ 42,893 (+5603.86%)
Mutual labels:  algorithms, sorting-algorithms, data-structures
Data-Structures-and-Algorithms
Implementation of various Data Structures and algorithms - Linked List, Stacks, Queues, Binary Search Tree, AVL tree,Red Black Trees, Trie, Graph Algorithms, Sorting Algorithms, Greedy Algorithms, Dynamic Programming, Segment Trees etc.
Stars: ✭ 144 (-80.85%)
Mutual labels:  avl-tree, graph-algorithms, sorting-algorithms
Algods
Implementation of Algorithms and Data Structures, Problems and Solutions
Stars: ✭ 3,295 (+338.16%)
Mutual labels:  algorithms, graph-algorithms, sorting-algorithms
Dsa.js Data Structures Algorithms Javascript
🥞Data Structures and Algorithms explained and implemented in JavaScript + eBook
Stars: ✭ 6,251 (+731.25%)
Mutual labels:  algorithms, data-structures, heap
Competitive coding
This repository contains some useful codes, techniques, algorithms and problem solutions helpful in Competitive Coding.
Stars: ✭ 393 (-47.74%)
Mutual labels:  algorithms, data-structures, graph-algorithms
Interview
Data Structures and Algorithms in Java (useful in interview process)
Stars: ✭ 396 (-47.34%)
Mutual labels:  algorithms, data-structures, sorting-algorithms
Algorithm Notes
Comprehensive algorithms solution to help engineers prepare their interviews and future study
Stars: ✭ 44 (-94.15%)
Mutual labels:  algorithms, graph-algorithms, sorting-algorithms
Code With Love
Open source programming algorithms
Stars: ✭ 107 (-85.77%)
Mutual labels:  algorithms, data-structures, sorting-algorithms

Note:

Please don't take effort to create pull requests for new algorithms or data structures. This is just a curiosity-driven personal hobby and was originally not intended to be a library. Feel free fork and modify to fit your need if that's what you are looking for. You can however open issues or fix bugs with pull requests, I would be happy to take a look when I get time

Advanced Algorithms

Various important computer science algorithms generically implemented in C#.

Build Status

Install by nuget

For beta releases on beta branch

Install-Package Advanced.Algorithms -Pre

Not a stable release yet.

Supports

  • .Net Standard 1.0 or above
  • .Net Framework 4.0 or above

Development environment

Windows

  • Visual Studio Code as IDE for .NET core
  • Visual Studio 2017 as IDE for .NET framework/.NET core

Mac OS

  • Visual Studio Code as IDE for .NET core
  • Visual Studio 2017 as IDE for Mono

Linux

  • Visual Studio Code as IDE for .NET core
  • Mono develop as IDE for Mono

Data structures

List

HashSets

Dictionaries

Stack

Queue

Linked list

Heap

Note: It is observed that among the implementations here, in practice, with the exclusion of UpdateKey (decrement/increment) operation, regular Binary Heap & d-ary Heap outperforms other in theory superiors. Likely because it doesn't have pointer juggling overhead and hey arrays are faster!

Tree

Binary search trees

B trees (database trees)

Queryable trees

TODO: Support multi-dimentional segment tree & binary indexed tree.

Lookup trees

TODO: implement trie compression.

Set

Graph

Adjacency list

Adjacency matrix

Algorithms

Graph algorithms

Articulation points

Bridges

Connectivity

Coloring

Cover

Maximum flow

Shortest path

Matching

  • [X] Max bipartite matching (implementation | tests) using Edmonds Karp's improved Ford Fulkerson max flow algorithm
  • [ ] Max bipartite matching (implementation | tests) using Hopcroft Karp algorithm

Cut

  • [X] Minimum cut (implementation | tests) using Edmonds Karp's improved Ford Fulkerson max flow algorithm

Cycle

Search

Topological sort

Minimum spanning tree

String

Pattern matching

Compression

Sorting and searching

Sorting algorithms

Note: On a decent desktop, in given implementations here for +ive random input integers, the clear winner is counting sort (~0.1 seconds to sort 1 million integers) followed by Radix Sort (~0.4 seconds). Merge Sort, Heap Sort, Quick Sort & Bucket Sort are all winners for +ive & -ive random integer inputs. Tree sort has pointer juggling overhead on backing Red-Black Tree, so performs 8 times slower than Merge Sort in practice. Bubble Sort, Insertion Sort, Selection Sort & Shell Sort are among the worst for random input as observed from results.

Combinatorics

Distributed Systems

Numerical methods

Geometry (in 2D)

Bit manipulation

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].