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

via Udemy

Go to Course: https://www.udemy.com/course/algorithms-and-data-structures/

Overview

This course is about data structures and algorithms. We are going to implement the problems in Java. The course takes approximately 20 hours to complete. It is highly recommended to type out these data structures several times on your own in order to get a good grasp of it. Section 1:data structures and abstract data typesSection 2 - Arrayswhat are arrayswhat is random access and how to indexesSection 3 - Linked Listslinked lists and doubly linked listslinked list related interview questionsSection 2 - Stacks and Queues:what are stacks and queuesheap memory and stack memoryvisualizing stack memorySection 3 - Binary Search Trees (BSTs):what are tree data structures?how to achieve O(logN) logarithmic running time?binary search trees Section 4 - AVL Treeswhat is the problem with binary search trees?balanced search trees: AVL trees rotationsSection 5 - Red-Black Treeswhat are red-black trees?what is recovering operation?comparing AVL trees and red-black treesSection 6 - Splay Treessplay trees and cachesachieve O(1) running time for getting the recently visited itemSection 7 - Heaps and Priority Queueswhat are priority queues?what is heap data structure?how to do sorting in O(NlogN) with heaps?Section 8 - B-Treesexternal memory and the main memory (RAM)B-trees and their applications in memoryB* trees and B+ treesSection 9 - Hashing and HashMaps:what are hashing and hashtables (hashmaps)what are hash-functionshow to achieve O(1) running time complexitySection 10 - Sorting Algorithmsbasic sorting algorithmsbubble sort and selection sortinsertion sort and shell sortquicksort and merge sortcomparison based and non-comparison based approachesstring sorting algorithmsbucket sort and radix sortSection 11 - Substring Search Algorithmssubstring search algorithmsbrute-force substring searchZ substring search algorithmRabin-Karp algorithm and hashingKnuth-Morris-Pratt (KMP) substring search algorithmSection 12 (BONUS):what is LRU cacheLRU cache implementationSection 13 (BONUS):Fenwick trees (binary indexed trees)binary indexed tree implementation Section 14 - Algorithms Analysishow to measure the running time of algorithmsrunning time analysis with big O (ordo), big Ω (omega) and big θ (theta) notationscomplexity classespolynomial (P) and non-deterministic polynomial (NP) algorithmsO(1), O(logN), O(N) and several other running time complexitiesIn each chapter you will learn about the theoretical background of each algorithm or data structure, then we are going to write the code on a step by step basis 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.Thanks for joining the course, let's get started!

Skills

Reviews