This article will cover the probabilistic analysis of the randomized Quicksort algorithm. The randomness comes from selecting the pivot to partition the input array around uniformly.

Quicksort is an efficient algorithm that solves the sorting problem; that is, given an input array A and its length n, find a permutation of A such that for all i, j (0 ≤ i < j < n), A[i] < A[j]. The running time of Quicksort is in the order of Θ(n log n). …

Sorting is an essential problem that shows up in many areas of computer science. To state precisely, the sorting problem takes an input array A with n distinct elements and outputs a permutation of A such that for all i and j (i < j), A’[i] < A’[j]:

Sorting algorithms (algorithms that solve the sorting problem) generally use comparison to sort an array, that is, the algorithm makes a comparison between some (or all) pairs of distinct elements in the array. …

HTTP is literally everywhere. While reading this post from Medium, some HTTP/HTTPS flow or network communication runs in the background. Every website that you visit uses HTTP protocol to communicate with an HTTP server. Wait, what is a server? What does that even mean? In this article, I will explain the context of HTTP servers and how you can create your own one.

In today’s world, what I see common between programmers (and beginner programmers) is they tend to start with web development, particularly HTML/CSS and Javascript. After learning the basics, they start to use fancy frameworks or libraries, e.g…