Skip to content

A library that contains basic data structures and algorithm implementations.

License

Notifications You must be signed in to change notification settings

nikoladimitroff/DSA-Demo-Library

Repository files navigation

DSA-Demo-Library

A library that contains basic data structures and algorithm implementations in Java for the purposes of the Data Structure + Algorithms course @ FMI, SU.

Cheatsheet

Quick summary of everything studied in the course + extra algorithms can be found here - http://bigocheatsheet.com/

Data structure comparison

The following table summarizes what we already know about the algorithmic complexity of the basic operations on several data structures.

Data structure Get Append Insert RemoveAt Search Random Access?
Sequential List (Dynamic Array) O(1) O(1)A O(n) O(n) O(n) True
Linked List O(n) O(1) O(1) O(1) O(n) True
Stack O(1) O(1) - O(1) - False
Queue O(1) O(1) - O(1) - False
HashMap O(1) O(1)A O(1)A O(1) O(1) False
BST O(log n) O(log n) O(log n) O(log n) O(log n) True
  • Subscript A means that the complexity is amortized.

Standard library implementations

The following table summarizes the standard implementations (if any) of several data structures data structures in the most popular programming languages' standard libraries.

Language SequentialList LinkedList Stack Queue HashMap Set BST Sorting algorithm
C++ vector list stack queue unordered_map unordered_set map introsort
Java ArrayList LinkedList Stack Queue HashMap HashSet - timsort
C# List LinkedList Stack Queue Dictionary HashSet SortedDictionary introsort
Python list - - - dict set OrderedDict timsort
JavaScript Array - Array Array Object - - NDS
  • NDS - Not Described in Standard (i.e. the language has multiple implementations that use different algorithms)

About

A library that contains basic data structures and algorithm implementations.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages