Algorithms and Data Structures in Java - Part II
4.4 (47 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
985 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Algorithms and Data Structures in Java - Part II to your Wishlist.

Add to Wishlist

Algorithms and Data Structures in Java - Part II

Data compression, tries, substring search and sorting
4.4 (47 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
985 students enrolled
Created by Holczer Balazs
Last updated 4/2017
English
Current price: $10 Original price: $35 Discount: 71% off
1 day left at this price!
30-Day Money-Back Guarantee
Includes:
  • 7.5 hours on-demand video
  • 4 Articles
  • 4 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
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
View Curriculum
Requirements
  • Core Java
  • Eclipse or other IDE
Description

Hi!

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.

In the first part of the course we are going to learn about basic data structures such as linked lists, stacks and queues, heaps and some advanced ones such as hash tables and ternary search trees. The second part will be about data compression. We will try to optimize each data structure ( for example avoiding obsolete references ) as much as possible.

In each chapter I am going to talk about the theoretical background of each algorithm or data structure, then we are going to write the code step by step in Eclipse, Java.

Most of the advanced algorithms relies heavily on these topics so it is definitely worth understanding the basics. These principles can be used in several fields: in investment banking, artificial intelligence or electronic trading algorithms on the stock market.

Who is the target audience?
  • This course is meant for university students with quantitative background (mathematics, computer science) but anyone with core java knowledge can get a good grasp of the lectures
Students Who Viewed This Course Also Viewed
Curriculum For This Course
Expand All 73 Lectures Collapse All 73 Lectures 07:24:49
+
Introduction
2 Lectures 01:15

Complexity theory
00:05
+
Prefix Tree - Tries
15 Lectures 01:39:16



Prefix tree introduction - autocomplete
05:19

Prefix tree introduction - trie as a hash table
09:01

Prefix tree introduction - hashing versus tries
06:47

Prefix tree introduction - applications
02:05

Prefix tree implementation - insert, search I
06:49

Prefix tree implementation - insert, search II
08:46

Prefix tree implementation - insert, search III
08:10

Prefix tree implementation - as a map
06:56

Prefix tree implementation - autocomplete
09:08

Prefix tree implementation - sorting
02:32

Longest common prefix
05:21

Longest common prefix in networking
07:31
+
Ternary Search Tree
5 Lectures 28:37
Ternary search tree introduction - basics
03:57

Ternary search tree introduction - operations
07:34

Ternary search tree introduction - applications
03:34

Ternary search tree implementation I
08:12

+
Substring Search
7 Lectures 45:53
Brute-force search introduction
06:42

Brute-force search implementation
07:04

Boyer-Moore search introduction
06:38

Boyer-Moore search example
04:26

Boyer-Moore implementation I
10:15

Boyer-Moore implementation II
02:06

Rabin-Karp algorithm introduction
08:42
+
Strings
6 Lectures 38:17
Strings introduction
13:01

String reversion
06:37

Suffixes
05:01

Prefixes
04:00

Longest common prefix
05:34

Longest repeated substring problem
04:04
+
Basic Sorting Algorithms
24 Lectures 02:26:21
Sorting introduction
08:02

Adaptive sorting algorithms
03:05

Bogo sort introduction
03:35

Bogo sort implementation
06:43

Sleep sort
03:10

Bubble sort introduction
05:35

Bubble sort implementation
05:15

Selection sort introduction
06:39

Selection sort implementation
04:12

Insertion sort introduction
07:39

Insertion sort implementation
04:49

Shell sort introduction
08:14

Shell sort implementation
04:18

Quicksort introduction I
08:53

Quicksort introduction II
07:41

Quicksort implementation
06:55

Merge sort introduction - divide
06:50

Merge sort introduction - conquer
08:54

Merge sort implementation
06:26

Hybrid algorithms introduction
05:50

Non-comparison based algorithms
02:27

Counting sort introduction
08:06

Counting sort implementation
04:20

Radix sort introduction
08:43
+
Data Compression
11 Lectures 01:25:04
Run length encoding introduction
10:46

Run length encoding implementation - encode
05:15

Run length encoding implementation - decode
05:45

Huffman encoding introduction
09:13

Huffman decoding
04:05

Huffman encoding implementation I - helper classes
07:27

Huffman encoding implementation II - encoding
07:58

Huffman encoding implementation III - testing
07:51

LZW compression introduction - compression
10:27

LZW compression introduction - decompression
06:53

LZW implementation
09:24
+
Source Code & Slides
3 Lectures 00:06
Slides
00:01

Source code
00:01

Discounts for other courses
00:02
About the Instructor
Holczer Balazs
4.4 Average rating
2,420 Reviews
24,976 Students
21 Courses
Software Engineer

Hi!

My name is Balazs Holczer. I am from Budapest, Hungary. I am qualified as a physicist and later on I decided to get a master degree in applied mathematics. At the moment I am working as a simulation engineer at a multinational company. I have been interested in algorithms and data structures and its implementations especially in Java since university. Later on I got acquainted with machine learning techniques, artificial intelligence, numerical methods and recipes such as solving differential equations, linear algebra, interpolation and extrapolation. These things may prove to be very very important in several fields: software engineering, research and development or investment banking. I have a special addiction to quantitative models such as the Black-Scholes model, or the Merton-model. Quantitative analysts use these algorithms and numerical techniques on daily basis so in my opinion these topics are definitely worth learning.

Take a look at my website and join my email list if you are interested in these topics!