Receive regular tips about Java programming, algorithms and data structures!

Unsubscribe whenever you want. Read my Privacy Policy.

Heapsort – Algorithm, Source Code, Time Complexity

In this article, I'll show you that Heapsort has nothing to do with the Java heap. I'll show how it works, its Java source code, and I'll explain how to determine its time complexity.

Merge Sort – Algorithm, Source Code, Time Complexity

This article describes how Merge Sort works, shows its Java source code and explains how to determine its time complexity.

Quicksort – Algorithm, Source Code, Time Complexity

This article describes how Quicksort works, shows the Java source code and explains how to determine its time complexity.

Bubble Sort – Algorithm, Source Code, Time Complexity

In this article, I describe how Bubble Sort works, introduce the source code, and explain how to derive its time complexity.

Selection Sort – Algorithm, Source Code, Time Complexity

In this article, I describe how Selection Sort works, show its source code, and explain its derivation of time complexity.

Insertion Sort - Algorithm, Source Code, Time Complexity

This article describes how Insertion Sort works, shows an implementation in Java and explains the time complexity.

Sorting in Java [Tutorial]

This tutorial explains – step by step and with many code examples – how to sort primitive data types (ints, longs, doubles, etc.) and objects of any class in Java.

Sorting Algorithms [Ultimate Guide]

If you need a refresher on how the most common sorting algorithms work and how they differ, this series is for you.

Big O Notation and Time Complexity – Easily Explained

In this article, I will explain the big O notation (and the time and space complexity described with it) only using examples and diagrams – and entirely without mathematical formulas, proofs and symbols like θ, Ω, ω, ∈, ∀, ∃ and ε.

The best books for programmers (updated 2020)

In this article, I have compiled a list of the best books for programmers.

The books cover programming in general (hard skills and soft skills) and Java programming in particular.