# Java Algorithms

Welcome to my Java algorithm video tutorial. Here I provide 18 videos on not only Java algorithms, but I also cover Data Structures in depth.

We cover numerous search and sorting algorithms. We also look at stacks, queues, lists, recursion, Big O Notation, hash tables, trees, heaps and a ton more.

A playlist filled with all the videos is below, along with links to all of the code used.

Java Algorithm Video Tutorial Articles and Code

Java Algorithms 1 : An algorithm is just the steps you take to manipulate data. A data structure is the way data is arranged in memory. There are 3 main data structure operations I will focus on first being inserting, deleting and searching for data.

Java Sort Algorithm : Here I will cover all of the elementary sorting algorithms : Bubble, Selection and Insertion sort. I also cover the linear and binary search algorithms.

Stacks and Queues : Stacks and Queues are used to complete a task and are soon after discarded. They also allow only a single item to be added or removed at a time. Stacks then provide access to the last item in, while queues provide access to the first item in.

Linked List in Java : I cover how to create linked lists, what a link is, how to add and delete links, how to search through them and a whole bunch more.

Linked List in Java 2 :  I will cover Double Ended Linked Lists which have a reference to the first and last link. I cover how a Doubly Linked List allows you to go backwards and forwards in a list. Then we take a look at Iterators.

Java Recursion : I cover java recursion in 5 different ways. I figured if I show it using many different diagrams that it will make complete sense.

Java Shell Sort : I really tried to have fun explaining how the Shell Sort works in this tutorial. I show how it works in 4 different ways. We see it graphically, in a presentation format, explained during execution and again in the code itself.

Java Quick Sort : The Quick Sort is normally the fastest sorting algorithm and in this tutorial you’ll learn all about it.

Big O Notations : This is a rough overview of Big O and I hope to simplify it rather than get into all of the complexity. I’ll specifically cover the following O(1), O(N), O(N^2), O(log N) and O(N log N).

Java Hash Table : A Hash Table is a data structure offers fast insertion and searching capabilities. The negative is that they are limited in size because they are based on arrays.

Java Hash Tables 2 : I cover all of the following and more: 1. Why We Use Prime sized hash tables 2. How to Increase Hash Table Size 3. How to Avoid Clustering 4. How Double Hashing Works 5. How to Find Values in a Double Hashed Hash Table

Java Hash Tables 3 : I review linked lists because I’ve received many requests on them. I’ll also show you how to hash strings, so that we can make a tool that can be used as a dictionary, spell checker, or something like Google Instant.

Binary Tree in Java : I show you what a binary tree is, and how to create, add, traverse and find nodes. I’ll also explain all the terminology used when describing tree structures. We’ll cover nodes, paths (edges), traversing and much more.

Binary Trees in Java 2 : I will take you step-by-step through the process of deleting nodes in a binary tree. This topic seems to be confusing to many people.

Solving Programming Problems : In this tutorial I’ll answer the question I’ve been getting, which is how to print a tree data structure. I also cover solving programming problems in general.

Solving Programming Problems 2 : I walk through the process of finding bugs in code and talk about how we can fix those bugs.

Java Heap Tutorial : A Heap is kind of like a tree, but it is normally implemented as an array. There are 2 main rules for using a heap. 1. Every row is complete except for last row. 2. Parent keys are bigger then children. I will cover how to insert and remove items. I’ll show how an array is heaped. I’ll also cover how the Heap Sort works.