Skip to content Skip to sidebar Skip to footer

Widget HTML #1

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

 

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

Algorithms Data Structures in Java #1 (+INTERVIEW QUESTIONS), 
Basic Algorithms and Data Structures: AVL tree, Binary Search Trees, Arrays, B Trees, Linked Lists, Stacks and HashMaps


What you'll learn

  • grasp the fundamentals of algorithms and data structures
  • detect non-optimal code snippets
  • learn about arrays and linked lists
  • learn about stacks and queues
  • learn about binary search trees
  • learn about balanced binary search trees such as AVL trees or red-black trees
  • learn about priority queues and heaps
  • learn about B-trees and external memory
  • learn about hashing and hash tables



Description
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 types

Section 2 - Arrays

what are arrays

what is random access and how to indexes

Section 3 - Linked Lists

linked lists and doubly linked lists

linked list related interview questions

Section 2 - Stacks and Queues:

what are stacks and queues

heap memory and stack memory

visualizing stack memory

Section 3 - Binary Search Trees (BSTs):

what are tree data structures?

how to achieve O(logN) logarithmic running time?

binary search trees

Section 4 - AVL Trees

what is the problem with binary search trees?

balanced search trees: AVL trees

rotations

Section 5 - Red-Black Trees

what are red-black trees?

what is recovering operation?

comparing AVL trees and red-black trees

Section 6 - Splay Trees

splay trees and caches

achieve O(1) running time for getting the recently visited item

Section 7 - Heaps and Priority Queues

what are priority queues?

what is heap data structure?

how to do sorting in O(NlogN) with heaps?
Section 8 - B-Trees

external memory and the main memory (RAM)

B-trees and their applications in memory

B* trees and B+ trees

Section 9 - Hashing and HashMaps:

what are hashing and hashtables (hashmaps)

what are hash-functions

how to achieve O(1) running time complexity

Section 10 - Sorting Algorithms

basic sorting algorithms

bubble sort and selection sort

insertion sort and shell sort

quicksort and merge sort

comparison based and non-comparison based approaches

string sorting algorithms

bucket sort and radix sort

Section 11 - Substring Search Algorithms

substring search algorithms

brute-force substring search

Z substring search algorithm

Rabin-Karp algorithm and hashing

Knuth-Morris-Pratt (KMP) substring search algorithm

Section 12 (BONUS):

what is LRU cache

LRU cache implementation

Section 13 (BONUS):

Fenwick trees (binary indexed trees)

binary indexed tree implementation

Section 14 - Algorithms Analysis

how to measure the running time of algorithms

running time analysis with big O (ordo), big Ω (omega) and big θ (theta) notations

complexity classes

polynomial (P) and non-deterministic polynomial (NP) algorithms

O(1), O(logN), O(N) and several other running time complexities

In 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!

Who this course is for:
  • This course is meant for everyone from scientists to software developers who want to get closer to algorithmic thinking in the main

Post a Comment for "Algorithms Data Structures in Java #1 (+INTERVIEW QUESTIONS)"