Algorithms and Data Structures in Java – Part II

Algorithms and Data Structures in Java – Part II

English | MP4 | AVC 1280×720 | AAC 48KHz 2ch | 7.5 | 1.00 GB

Data compression, tries, substring search and sorting

This course is about data structures and algorithms. We are going to implement the problems in Java, but I try to do it as generic as possible: so the core of the algorithms can be used in C++ or Python. The course takes approximately 7 hours to complete. I highly recommend typing out these data structures several times on your own in order to get a good grasp of it.

First, we are going to discuss prefix trees: modern search engines for example use these data structures quite often. When you make a google search there is an autocomplete feature because of the underlying trie data structure. It is also good for sorting: hashtables do not support sort operation but on the other hand, tries do support.

Substring search is another important field of computer science.You will learn about Boyer-Moore algorithm and we will discuss brute-force approach as well as Raabin-Karp method.

The next chapter is about sorting. How to sort an array of integers, doubles, strings or custom objects? We can do it with bubble sort, insertion sort, mergesort or quicksort. You will learn a lot about the theory as well as the concrete implementation of these important algorithms.

The last lectures are about data compression: run-length encoding, Huffman encoding and LZW compression.

What Will I Learn?

  • Grasp the fundamentals of algorithms and data structures
  • Develop your own algorithms that best fit to the personal need
  • Detect non-optimal code snippets
  • Get to know data compression
  • Get to know sorting algorithms
Table of Contents

Introduction
1 Introduction
2 Complexity theory

Prefix Tree – Tries
3 Prefix tree introduction – basics
4 Prefix tree introduction – insert
5 Prefix tree introduction – sorting
6 Prefix tree introduction – autocomplete
7 Prefix tree introduction – trie as a hash table
8 Prefix tree introduction – hashing versus tries
9 Prefix tree introduction – applications
10 Prefix tree implementation – insert_ search I
11 Prefix tree implementation – insert_ search II
12 Prefix tree implementation – insert_ search III
13 Prefix tree implementation – as a map
14 Prefix tree implementation – autocomplete
15 Prefix tree implementation – sorting
16 Longest common prefix
17 Longest common prefix in networking

Ternary Search Tree
18 Ternary search tree introduction – basics
19 Ternary search tree introduction – insert
20 Ternary search tree introduction – get
21 Ternary search tree introduction – applications
22 Ternary search tree implementation I
23 Ternary search tree implementation II

Substring Search
24 Brute-force search introduction
25 Brute-force search implementation
26 Boyer-Moore search introduction
27 Boyer-Moore search example
28 Boyer-Moore implementation I
29 Boyer-Moore implementation II
30 Boyer-Moore implementation III
31 Rabin-Karp algorithm introduction

Strings
32 Strings introduction
33 String reversion
34 Suffixes
35 Prefixes
36 Longest common prefix
37 Longest repeated substring problem

Basic Sorting Algorithms
38 Sorting introduction
39 Adaptive sorting algorithms
40 Bogo sort introduction
41 Bogo sort implementation
42 Sleep sort
43 Bubble sort introduction
44 Bubble sort implementation
45 Selection sort introduction
46 Selection sort implementation
47 Insertion sort introduction
48 Insertion sort implementation
49 Shell sort introduction
50 Shell sort implementation
51 Quicksort introduction I
52 Quicksort introduction II
53 Quicksort implementation
54 Merge sort introduction – divide
55 Merge sort introduction – conquer
56 Merge sort implementation
57 Hybrid algorithms introduction
58 Non-comparison based algorithms
59 Counting sort introduction
60 Counting sort implementation
61 Radix sort introduction

Data Compression
62 Run length encoding introduction
63 Run length encoding implementation – encode
64 Run length encoding implementation – decode
65 Huffman encoding introduction
66 Huffman decoding
67 Huffman encoding implementation I – helper classes
68 Huffman encoding implementation II – encoding
69 Huffman encoding implementation III – testing
70 LZW compression introduction – compression
71 LZW compression introduction – decompression
72 LZW implementation

Source Code & Slides
73 Slides
74 Source code
75 DISCOUNT FOR OTHER COURSES!