Skip to main content
pelatihan
.org
Learn. Practice. Grow.
Category
EN
Sign in
Sign up
Menu
DSA Curriculum: 13 Chapters, 56 Lessons — pelatihan.org
Home
/
Catalog
/
DSA
/
Curriculum
Curriculum
DSA Curriculum
Learn DSA online with 56 structured lessons, code examples, and 280 quiz questions.
56 lessons
13 chapters
280 questions
Summaries and key points are free to preview. Full lessons, code examples, and quizzes require a subscription.
01
DSA Tutorial
3 lessons
01
DSA HOME
This page is the main gateway to the Data Structures and Algorithms (DSA) material. It's a neatly organized material that goes from basic data structures like arrays and linked…
02
DSA Intro
The introduction of DSA explains why data structure and algorithms are important: programs should not only be accurate, but also be fast and memory-efficient. In this section you…
03
DSA Simple Algorithm
This section discusses simple algorithms through real-world examples, which is finding the greatest value in a list. The trick is simple: save the initial score as a candidate,…
02
Arrays
10 lessons
01
DSA Arrays
An array is the most basic data structure: a set of elements of the same type that are stored sequentially in memory and accessed through an index that starts from zero. Its main…
02
DSA Bubble Sort
Bubble sort sort sorts the data by comparing two adjacent elements and exchanging them if they are in the wrong order, repeating until there is no further exchange. At each turn,…
03
DSA Selection Sort
Selection sort works by finding the smallest element on the rest of the list, and then swapping it with the element in the position being processed. Each spin puts one element in…
04
DSA Insertion Sort
The insertion sort is similar to the way humans arrange cards in their hands: the elements are taken one by one and then inserted into the correct position among the elements…
05
DSA Quick Sort
Quick sort selects an element as a pivot, then divides the list into two parts: the smaller element of the pivot and the larger or equal element. The pivot is then placed in the…
06
DSA Counting Sort
Counting sort sort by calculating the occurrence of each value using a special array, then rearranging based on the accumulation of the count. It does not compare elements with…
07
DSA Radix Sort
Radix sort sorts the data digitally by digit, from the least significant to the most significant, using counting sort as a subroutine. Since each digit is processed separately,…
08
DSA Merge Sort
Merge sort divides the list into two parts until each contains one element, and then re-assembles them in order. The process of merging compares the front elements of each piece…
09
DSA Linear Search
Linear search searches the list one by one from the beginning until it finds a target or a list of finished ones. This method is simple and can work on data that is not sorted or…
10
DSA Binary Search
Binary search works on data that's sorted by continuously dividing the search range into two. Compare the middle element to the target, then throw out half the range that is…
03
Linked Lists
4 lessons
01
DSA Linked Lists
A linked list is a linear data structure that stores elements within a node containing data and pointers to the next node. Unlike an array, the elements are not adjacent in…
02
DSA Linked Lists in Memory
This topic explains how linked lists are mapped to the physical memory of a computer. Unlike arrays with adjacent elements, node linked lists are spread out and linked by…
03
DSA Linked Lists Types
There are three main types of linked lists: single, double, and circular. The singly linked list only points to the next node, the doubly linked list points forward and back so…
04
Linked Lists Operations
This section discusses the basic operations of the linked list: inserting nodes in front, center, and back, as well as removing nodes and finding elements. The front insertion…
04
Stacks & Queues
2 lessons
01
DSA Stacks
A stack is a LIFO (Last In First Out) data structure: the last element that enters is the first to exit, like a plate stack. The main operations are push to add and pop to take…
02
DSA Queues
Queues are a first in first out (FIFO) data structure, like queues in a drawer: first come, first served. Elements are added at the back (enqueue) and taken from the front…
05
Hash Tables
3 lessons
01
DSA Hash Tables
Hash tables store data as a pair of key values with the help of a hash function that converts the key into an index. With good hash function, average access is O(1) for insert,…
02
DSA Hash Sets
A hash set is a unique set of values stored using hashing, so that search, insertion, and deletion takes place on average. This structure is very useful for removing duplicates…
03
DSA Hash Maps
A hash map is a key-value structure that stores data pairs using a hash function, also known as a dictionary. It allows key-based value searching in average time. This principle…
06
Trees
8 lessons
01
DSA Trees
A tree is a non-linear data structure consisting of a set of hierarchically connected nodes, initiated by a single root and branching down without forming a cycle. Every node…
02
DSA Binary Trees
A binary tree is a tree where each node has at most two children, called the left and right child. This structure forms the basis of binary search trees, heaps, and various…
03
DSA Pre-order Traversal
Pre-order traversal tracks the tree in the order: node first, then left subtree, then right subtree. This pattern is useful for copying tree structures, evaluating prefix…
04
DSA In-order Traversal
In-order traversal visits the subtree left, node, then subtree right. In binary search trees, this sequence produces value in an upwardly sorted position, so it is very often…
05
DSA Post-order Traversal
Post-order traversal visits left subtree, right subtree, new node. This sequence ensures that the child is processed before the parent, so it is suitable for removing the entire…
06
DSA Array Implementation
Binary trees can be stored in an array by mapping the position of nodes: the left child is at index 2i+1 and the right child at 2i+2 when index is zero-based. This mapping is…
07
DSA Binary Search Trees
A binary search tree is a binary tree in order: the value of each left node is smaller and the value of the right child is larger than the parent. This makes searching,…
08
DSA AVL Trees
AVL tree is a binary search tree that balances itself by keeping the high difference between the left and right subtrees of each node at no more than one. When inserting or…
07
Graphs
4 lessons
01
DSA Graphs
A graph is a data structure composed of vertices and edges that connect them, which can be directional or non-directional and can be weighted. Many real problems like navigation…
02
Graphs Implementation
A graph can be implemented with an adjacency matrix in the form of a two-dimensional array or an adjacency list in the form of a list of neighbors of each node. The matrix is…
03
DSA Graphs Traversal
Graph search uses breadth-first search (BFS) which browses per level with the help of queues, and depth-first search (DFS) which searches as deep as possible with stacks or…
04
DSA Cycle Detection
Cycle detection checks for tracks that go back to the same node. On the non-directional graph, the cycle is detected when the DFS finds a neighbor that has already been visited…
08
Shortest Path
3 lessons
01
DSA Shortest Path
The shortest route problem is finding a route with a minimum total weight between two nodes. The algorithm chosen depends on the characteristics of the graph: BFS for weightless…
02
DSA Dijkstra's
Dijkstra looks for the shortest path from one source to all nodes on a graph with non-negative weight. This greedy algorithm always visits the node at the smallest temporary…
03
DSA Bellman-Ford
Bellman-Ford is looking for the shortest path from one source and able to handle the negative side of the rot. The algorithm does a whole-sided relaxation of V-1 times, then an…
09
Minimum Spanning Tree
3 lessons
01
Minimum Spanning Tree
A minimum spanning tree is a subgraph that includes all nodes with a total minimum weight without forming a cycle. The two classical algorithms for building it are the Prim that…
02
DSA Prim's
Prim builds the MST by growing from an initial node: each step adds a side with the smallest weight that connects the tree to the node outside it. With priority queue, the…
03
DSA Kruskal's
The Kruskal's algorithm sort all sides by weight, then insert sides one by one as long as they don't form a cycle. The union-find data structure is used to check whether two…
10
Maximum Flow
3 lessons
01
DSA Maximum Flow
The maximum flow problem looks for the maximum current value that can be sent from source to destination on a weighted network called a flow network. The key concept is path…
02
DSA Ford-Fulkerson
Ford-Fulkerson calculated maximum flow by continuously finding an augmenting path from source to destination and then adding the current to the capacity of the remaining path.…
03
DSA Edmonds-Karp
Edmonds-Karp is a Ford-Fulkerson refinement that always chooses the shortest path augmenting using BFS. Thus its complexity becomes limited and no longer depends on the size of…
11
Time Complexity
10 lessons
01
Introduction
Time complexity analysis measures how fast the algorithm's execution time grows with n input sizes, without being dependent on a particular machine. The Big O notation states the…
02
Bubble Sort
The complexity analysis of the bubble sort shows the number of comparisons around n(n-1)/2 in the worst case, so O(n^2) for the average and worst case. The best case can be…
03
Selection Sort
Sort selection always searches for the full minimum element in each round, so the complexity of the O(n^2) in all cases includes the data that has already been sorted. The…
04
Insertion Sort
Insertion sort has O(n) at best because each element is fairly compared once to its predecessor which is already sorted. The worst-case and average occur when the data is…
05
Quick Sort
Quick sort grows O(n log n) on average because the partition divides the data into two parts that are balanced with depths around log n. The worst case scenario is when the pivot…
06
Counting Sort
Counting sort has a complexity of O(n + k) with n number of elements and k range of values. He makes a k-sized array of numbers and then composes the results of the accumulation…
07
Radix Sort
Radix sort runs counting sort as the largest number of digits, so its complexity is O(d * (n + k)) with d the number of digits and k the base. Compared to quick sort, radix sort…
08
Merge Sort
Merge sort always O(n log n) because the division tree has log n levels and each level combines a total of n elements. The best and worst cases are the same because the division…
09
Linear Search
Linear search has the worst-case and average because every element is potentially checked. The best case is when the target is in first position. The advantage is simple and does…
10
Binary Search
Binary search is just O(log n) because each step throws out half the remaining range, so one million elements is about twenty comparisons. The best case is when the middle…
12
DSA Examples
3 lessons
01
DSA Examples
This page collects real-world examples of the application of DSA material that has been studied. By looking at the data structure and the algorithms used together in a single…
02
DSA Syllabus
This syllabus summarizes the entire scope of DSA material in sequence, from basic concepts and simple algorithms, sequencing and searching, linear data structures, hashing,…
03
DSA Study Plan
The study plan provides a structured learning plan to master DSA gradually over a period of time. Each session combines reading material, writing code, and working on quizzes so…