Computer Science in JavaScript (ES5 and ES6)
This repository contains code about various series of posts that I made on my blog about computer science (mostly data structures and sorting algorithms) reimplemented in JavaScript.
What's in this repository?
As of now, it contains 2 main sections:
The #data-structures series
The #data-structures series is a collection of posts about reimplemented data structures in JavaScript.
If you are not familiar with data structures, a quick introduction and the full list of reimplemented data structures can be found in the introduction post of the series on data structures in JavaScript.
If you feel comfortable with the concept of each data structure and only want to see the code, have a look at the summary post of the series. It removes all explanations and contains only the JavaScript code for all data structures discussed in the series.
The data structures in the series
- Array
- Hash Table
- Set
- Singly Linked List
- Doubly Linked List
- Stack
- Queue
- Tree
- Binary Search Tree
- Trie
- Graph
The #sorting-algorithms series
The #sorting-algorithms series is a collection of posts about reimplemented sorting algorithms in JavaScript.
If you are not familiar with sorting algorithms, a quick introduction and the full list of reimplemented sorting algorithms can be found in the introduction post of the series on sorting algorithms in JavaScript.
If you feel comfortable with the concept of each sorting algorithms and only want to see the code, have a look at the summary post of the series. It removes all explanations and contains only the JavaScript code for all sorting algorithms discussed in the series.
The sorting algorithms in the series
- Bubble sort
- Selection sort
- Insertion sort
- Shellsort
- Merge sort
- Quicksort
A good way to compare all of them
Unlike the data structures, all sorting algorithms have the same goal and they can all take the same input data. So, for every sorting algorithms of the series, we are going sort an array
of 10 numbers from 1 to 10.
By doing so we will be able to compare the different sorting algorithms more easily. Sorting algorithms are very sensitive to the input data so we will also try different input data to see how they affect the performances.
Why this repository?
At the beginning I started those series with 2 different repositories, one for the data structures and another one for the sorting algorithms. It was nice to keep things separately at first but grouping them into the same repository makes more sense to me now.
All computer science concepts are located at the same place and it will allow me to add even more things in the future. Moreover, it won’t be mandatory that those things will be about data structures or sorting algorithms. There are other important things to know too.