https://www.udemy.com/course/algorithms-and-data-structures-in-python/
A guide to implement data structures, graph algorithms and sorting algorithms from scratch with interview questions!
This course is about data structures, algorithms and graphs. We are going to implement the problems in Python programming language. I highly recommend typing out these data structures and algorithms several times on your own in order to get a good grasp of it. So what are you going to learn in this course? Section 1: setting up the environment differences between data structures and abstract data types Section 2 - Arrays: what is an array data structure arrays related interview questions Section 3 - Linked Lists: linked list data structure and its implementation doubly linked lists linked lists related interview questions Section 4 - Stacks and Queues: stacks and queues stack memory and heap memory how the stack memory works exactly? stacks and queues related interview questions Section 5 - Binary Search Trees: what are binary search trees practical applications of binary search trees problems with binary trees Section 6 - Balanced Binary Trees (AVL Trees and Red-Black Trees): why to use balanced binary search trees AVL trees red-black trees Section 7 - Priority Queues and Heaps: what are priority queues what are heaps heapsort algorithm overview Section 8 - Hashing and Dictionaries: associative arrays and dictionaries how to achieve O(1) constant running time with hashing Section 9 - Graph Traversal: basic graph algorithms breadth-first depth-first search stack memory visualization for DFS Section 10 - Shortest Path problems (Dijkstra's and Bellman-Ford Algorithms): shortest path algorithms Dijkstra's algorithm Bellman-Ford algorithm how to detect arbitrage opportunities on the FOREX? Section 11 - Spanning Trees (Kruskal's and Prim's Approaches): what are spanning trees what is the union-find data structure and how to use it Kruskal's algorithm theory and implementation as well Prim's algorithm Section 12 - Substring Search Algorithms what are substring search algorithms and why are they important in real world softwares brute-force substring search algorithm hashing and Rabin-Karp method Knuth-Morris-Pratt substring search algorithm Z substring search algorithm (Z algorithm) implementations in Python Section 13 - Hamiltonian Cycles (Travelling Salesman Problem) Hamiltonian cycles in graphs what is the travelling salesman problem? how to use backtracking to solve the problem meta-heuristic approaches to boost algorithms Section 14 - Sorting Algorithms sorting algorithms bubble sort, selection sort and insertion sort quicksort and merge sort non-comparison based sorting algorithms counting sort and radix sort Section 15 - 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 the first part of the course we are going to learn about basic data structures such as linked lists, stacks, queues, binary search trees, heaps and some advanced ones such as AVL trees and red-black trees.. The second part will be about graph algorithms such as spanning trees, shortest path algorithms and graph traversing. We will try to optimize each data structure 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 Python.
TO MAC USERS: If RAR password doesn't work, use this archive program:
RAR Expander 0.8.5 Beta 4 and extract password protected files without error.
TO WIN USERS: If RAR password doesn't work, use this archive program:
Latest Winrar and extract password protected files without error.