# Algorithms

## LeetCode: Unique Binary Search Trees II

How to generate all the unique binary search trees with given values [1, N].

## 3 Slowest Sorting Algorithms

Do you know which is the slowest sorting algorithm? Let’s have fun with bogosort, sleep sort, and slow sort!

Breadth-First-Search(BFS) explained with visualization, a queue is used in the implementation.

## Depth-First-Search(DFS) Explained With Visualization

Depth-First-Search(DFS) explained with visualization, contains implementations of iterative version and recursive version.

## LeetCode: Two Sum II – Input array is sorted

Solution for LeetCode: Two Sum II – Input array is sorted

## LeetCode Problems for Beginners

This is a list of categories with classic and easy problems for LeetCode beginners.

## Intersection of Two Linked Lists

Solution for Intersection of Two Linked Lists, naive solution and approaches of set and two pointers.

## Using Disjoint Set (Union-Find) to Build a Maze Generator

In this post, we will learn how disjoint-set(union-find) data structure works, then we implement a maze generator with it.

## Random Number and Card Shuffling Algorithm

The random number is an important topic in computer science. In this post, we will discuss how random numbers are generated, how to use random numbers to shuffle cards.

## Quicksort: two styles of implementations

Use quicksort as an example, explain my method for learning algorithms effectively, explore the differences between imperative and functional programming styles.