https://github.com/srinivaskandukuri/javascript-zero-to-hero
Javascript Basics, Advanced Topics, DataStructures, Algorithms, Problems and Solutions.
https://github.com/srinivaskandukuri/javascript-zero-to-hero
algorithms datastructures hackerrank hackerrank-javascript javascript javascriptlogical problems solutions
Last synced: 2 months ago
JSON representation
Javascript Basics, Advanced Topics, DataStructures, Algorithms, Problems and Solutions.
- Host: GitHub
- URL: https://github.com/srinivaskandukuri/javascript-zero-to-hero
- Owner: srinivasKandukuri
- Created: 2017-10-22T19:12:32.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2024-05-01T14:25:43.000Z (over 1 year ago)
- Last Synced: 2024-05-02T06:32:01.882Z (over 1 year ago)
- Topics: algorithms, datastructures, hackerrank, hackerrank-javascript, javascript, javascriptlogical, problems, solutions
- Language: JavaScript
- Homepage:
- Size: 1.79 MB
- Stars: 6
- Watchers: 2
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Javascript DataStructures, Algorithms, Interview problems and Solutions

## Introduction
This repository was created with the intention of helping developers master their concepts in JavaScript.
## Community
Feel free to submit a PR adding a link to your own recaps or reviews.
## Table of Contents
## Data Structures
A data structure is a particular way of organizing and storing data in a computer so that it can
be accessed and modified efficiently. More precisely, a data structure is a collection of data
values, the relationships among them, and the functions or operations that can be applied to
the data.
* [Linked List](https://github.com/srinivasKandukuri/Javascript-Zero-to-Hero/tree/master/DataStructures/LinkedList)
---
## Useful Information
### References
[▶ Data Structures and Algorithms on YouTube](https://www.youtube.com/playlist?list=PLLXdhg_r2hKA7DPDsunoDZ-Z769jWn4R8)
### Big O Notation
Order of growth of algorithms specified in Big O notation.

Source: [Big O Cheat Sheet](http://bigocheatsheet.com/).
Below is the list of some of the most used Big O notations and their performance comparisons against different sizes of the input data.
| Big O Notation | Computations for 10 elements | Computations for 100 elements | Computations for 1000 elements |
| -------------- | ---------------------------- | ----------------------------- | ------------------------------- |
| **O(1)** | 1 | 1 | 1 |
| **O(log N)** | 3 | 6 | 9 |
| **O(N)** | 10 | 100 | 1000 |
| **O(N log N)** | 30 | 600 | 9000 |
| **O(N^2)** | 100 | 10000 | 1000000 |
| **O(2^N)** | 1024 | 1.26e+29 | 1.07e+301 |
| **O(N!)** | 3628800 | 9.3e+157 | 4.02e+2567 |
### Data Structure Operations Complexity
| Data Structure | Access | Search | Insertion | Deletion | Comments |
| ----------------------- | :-------: | :-------: | :-------: | :-------: | :-------- |
| **Array** | 1 | n | n | n | |
| **Stack** | n | n | 1 | 1 | |
| **Queue** | n | n | 1 | 1 | |
| **Linked List** | n | n | 1 | 1 | |
| **Hash Table** | - | n | n | n | In case of perfect hash function costs would be O(1) |
| **Binary Search Tree** | n | n | n | n | In case of balanced tree costs would be O(log(n)) |
| **B-Tree** | log(n) | log(n) | log(n) | log(n) | |
| **Red-Black Tree** | log(n) | log(n) | log(n) | log(n) | |
| **AVL Tree** | log(n) | log(n) | log(n) | log(n) | |
### Array Sorting Algorithms Complexity
| Name | Best | Average | Worst | Memory | Stable | Comments |
| --------------------- | :-------: | :-------: | :-----------: | :-------: | :-------: | :-------- |
| **Bubble sort** | n | n^2 | n^2 | 1 | Yes | |
| **Insertion sort** | n | n^2 | n^2 | 1 | Yes | |
| **Selection sort** | n^2 | n^2 | n^2 | 1 | No | |
| **Heap sort** | n log(n) | n log(n) | n log(n) | 1 | No | |
| **Merge sort** | n log(n) | n log(n) | n log(n) | n | Yes | |
| **Quick sort** | n log(n) | n log(n) | n^2 | log(n) | No | |
| **Shell sort** | n log(n) | depends on gap sequence | n (log(n))^2 | 1 | No | |
| **Counting sort** | n + r | n + r | n + r | n + r | Yes | r - biggest number in array |
| **Radix sort** | n * k | n * k | n * k | n + k | Yes | k - length of longest key |
**[⬆ Back to Top](#table-of-contents)**