The main software component I use in developing the Truly Understanding Algorithms explanations is manim, for the animations. However, I use a range of other tools, from Emacs to FFmpeg, going through ImageMagick, Audacity, and other tools for various tasks. I intend to use this series to document some of the most common uses for… Continue reading My Toolset – Cropping a Video File using FFmpeg
Author: algorithm.explainer
Truly Understanding Insertion Sort
Insertion sort takes as input an array whose values are in an arbitrary order and it permutes them in-place such that they end up in increasing order. Insertion sort is one of the simpler sorting algorithms. Despite this, it is practically useful because it works very well on modern computers for small arrays, for which… Continue reading Truly Understanding Insertion Sort
Truly Understanding Mergesort
Merge-sort is a sorting algorithm. It takes as input an array whose values are in an arbitrary order and it outputs an array with the same elements in increasing order of values. Example 1. Why is merge-sort interesting? Merge-sort is interesting because it has a guaranteed worst-case run-time of O(n log n), which is the… Continue reading Truly Understanding Mergesort
Truly Understanding Binary Search
Binary search is a search algorithm. It takes as input a value that we will call a “needle” and an array that we will call a “haystack” that is known to be sorted in, say, increasing order of values. It determines if the needle is in the haystack or not. Furthermore, if the needle does… Continue reading Truly Understanding Binary Search
Truly Understanding Quicksort
Introduction Quicksort is a sorting algorithm, that is, it takes an array of values as input and it permutes them such that they are in increasing order. Example Why study Quicksort? Quicksort is very interesting to study and truly understand because of several features: It is very fast, both in practice and in theory. It… Continue reading Truly Understanding Quicksort