My Toolset – Cropping a Video File using FFmpeg

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

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 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