Udemyallen

Algorithms Data Structures in Java #2 (+INTERVIEW QUESTIONS)

Master data structures, ternary search trees, compression, substring search & sorting algorithms. Learn efficient coding techniques!

4.6(819)
12,722students
12h 53m
Certificate
Holczer Balazs
Holczer BalazsSoftware Engineer

Course Content

Algorithms Data Structures in Java #2 (+INTERVIEW QUESTIONS) is an all-levels Udemy course taught by Holczer Balazs. It runs 12h 53m, is taught in English, and includes a certificate of completion. Learners rate it 4.6 out of 5 from 819 reviews, with 12,722 students enrolled. It is a paid course, last updated November 2023.

Master Data Structures and Algorithms with Java

This comprehensive course delves into fundamental data structures and algorithms, providing a strong foundation for efficient problem-solving in computer science. While implemented in Java for practical application, the concepts are designed to be easily adaptable to C++ and Python, ensuring a versatile understanding of core algorithmic principles. The course spans approximately 12 hours and emphasizes hands-on practice. We strongly encourage you to implement these data structures yourself to solidify your understanding.

Section 1: Prefix Trees (Tries)

  • Understanding Tries: Learn the power of prefix trees, a crucial data structure used in various applications.
  • Core Operations: Master insertion, searching, and autocompletion techniques within tries.
  • Longest Common Prefix: Implement algorithms to find the longest common prefix among a set of strings.
  • Real-World Applications: Explore how prefix trees are used in networking (IP routing) and autocompletion features.

Section 2: Ternary Search Trees

  • Addressing Trie Limitations: Understand the challenges with traditional tries and how ternary search trees offer improvements.
  • Ternary Search Tree Fundamentals: Learn the structure and operations of ternary search trees.
  • Key Operations: Implement insertion and retrieval methods.
  • Practical Applications: Discover applications of ternary search trees in IP routing and the Boggle Game.

Section 3: Substring Search Algorithms

  • Efficient Substring Searching: Explore a range of substring search algorithms for finding occurrences of a pattern within a larger text.
  • Brute-Force Approach: Understand the basic brute-force substring search method.
  • Z Algorithm: Implement the efficient Z algorithm for substring search.
  • Rabin-Karp Algorithm & Hashing: Learn the Rabin-Karp algorithm and its use of hashing for faster substring matching.
  • Knuth-Morris-Pratt (KMP): Master the KMP substring search algorithm for optimized pattern matching.

Section 4: Strings in Java

  • Java String Internals: Gain insights into how strings are handled in Java programming, including the String Constant Pool.
  • Prefixes & Suffixes: Understand the concepts of prefixes and suffixes and their importance in string manipulation.
  • Longest Common Prefix: Implement algorithms for finding the longest common prefix of multiple strings.
  • Longest Repeated Substring: Learn to identify the longest repeated substring within a given string.
  • Suffix Tries & Arrays: Explore the use of suffix tries and suffix arrays for advanced string processing.

Section 5: Sorting Algorithms

  • Fundamental Sorting Techniques: Learn the basics of sorting algorithms, including bubble sort, selection sort, and insertion sort.
  • Advanced Sorting: Implement shell sort, quicksort, and merge sort for improved performance.
  • Comparison-Based vs. Non-Comparison-Based: Understand the differences between comparison-based and non-comparison-based sorting approaches.
  • String Sorting: Learn how to implement string sorting algorithms.
  • Bucket Sort & Radix Sort: Explore efficient bucket sort and radix sort techniques.

Section 6: Data Compression Algorithms

  • Data Compression Techniques: Discover methods for reducing data size.
  • Run-Length Encoding (RLE): Implement run-length encoding for efficient data compression.
  • Huffman Encoding: Learn Huffman encoding for variable-length coding.
  • LZW Compression: Understand LZW compression and decompression techniques.

Section 7: Algorithm Analysis

  • Measuring Algorithm Performance: Learn how to measure the running time of algorithms.
  • Big O Notation: Master running time analysis using Big O (ordo), Big Ω (omega), and Big Θ (theta) notations.
  • Complexity Classes: Understand complexity classes, including polynomial (P) and non-deterministic polynomial (NP) algorithms.
  • Common Time Complexities: Learn about common running time complexities such as O(1), O(logN), O(N), and more.

This course provides a solid foundation in data structures and algorithms, equipping you with the skills to tackle a wide range of computational challenges.

$ whoami — the devs behind tutorialsearch.io

Need a web app built? Hire the team behind TutorialSearch.io

We ship fast, production-grade full-stack apps (Next.js, React, edge infra) — the same stack that powers this site.

5.0
53m
beginner
pluralsight
5.0
1h 29m
beginner
pluralsight
5.0(140)
4h 24m
beginner
skillshare
5.0(766)
2h 58m
intermediate
skillshare