Description
The application provides a comprehensible content on the study of computer algorithms with a focus on interactivity and visualization of each step. By using controls the user goes through the algorithm while observing its work.
The current version of the application covers the following basic computer algorithms and data structures:
1. DATA STRUCTURES
Array,
Linked list,
Stack,
Queue
2. SORTING
Bubble sort,
Selection sort,
Insertion sort,
Merge sort,
Heap sort,
Quick sort,
3. BINARY SEARCH TREE
Pre-order traversal,
In-order traversal,
Post-order traversal,
Breadth-first traversals,
Insertion a node into binary search tree,
Deleting a node from binary search tree,
4. HASH-TABLE (chaining technique)
Inserting data into a Hash-table,
Deleting data from a Hash-table,
5. GRAPH
Depth-first search,
Breadth-first search,
Minimum Spanning Tree,
Dijkstra's algorithm,
Graph Constructor
The visualization of the algorithms and data structures is accompanied by a piece of code that shows its implementations. There is a direct link between the code and the visualization. The full code of each algorithm can be found by the link to a third-party Internet resource. Although the given code is written in Java and Python, the explanation and visualization of the algorithms are in no way tied to a specific programming language.
Algorithms and Data Structures is designed for a wide range of users and does not require any programming skills to understand this or that algorithm. However, since the application focuses on algorithms, it lacks definitions of data structures (with which the algorithms operate). Therefore, before using Algorithms and Data Structures app, it is recommended to be acquainted with such data structures as a binary tree, binary search tree, hash table, graph, etc. Algorithms and Data Structures may also interest experienced programmers, as it enables users with quick and efficient revision of the above algorithms.
The advantage of Algorithms and Data Structures app in comparison to other numerous resources for learning algorithms (books, presentations and videos), is that it helps master the material with minimal waste of time since while the user is observing the visual effect at every step, he or she is being involved in the algorithm. There is no need to pause or rewind in order to comprehend the idea of a lecturer as it happens with video-content. The speed of advancement in the Algorithms and Data Structures training program depends on the pace of the user, and not on the speed of a video clip.