|
所在平台: Udemy |
课程主页: https://www.udemy.com/course/algorithms-and-data-structures-in-python/
课程评论:没有评论
此课程《Python算法与数据结构(面试问答)》旨在帮助学员掌握数据结构、算法和图的基础知识,并通过Python语言进行实现。 **课程重点包括:** * **环境设置与基础概念:** 了解数据结构与抽象数据类型的区别。 * **基础数据结构:** 深入学习数组、链表(包括双向链表)、栈、队列、二叉搜索树、平衡二叉树(AVL树、红黑树)、优先队列和堆。 * **高级数据结构与技术:** 掌握哈希、字典及实现O(1)常数时间运行的方法。 * **图论算法:** 学习图的遍历(BFS、DFS)、最短路径算法(Dijkstra、Bellman-Ford)、生成树算法(Kruskal、Prim)以及Union-Find数据结构。 * **字符串匹配算法:** 探讨子字符串搜索算法,包括暴力匹配、Rabin-Karp、Knuth-Morris-Pratt (KMP) 和 Z 算法。 * **复杂问题求解:** 学习解决哈密顿环(旅行商问题),包括回溯和元启发式方法。 * **排序算法:** 涵盖多种排序算法,如冒泡排序、选择排序、插入排序、快速排序、归并排序、计数排序和基数排序。 * **算法分析:** 理解算法运行时间的测量、Big O、Big Ω、Big θ 符号,以及复杂度类(P、NP)和常见运行时间复杂度(O(1), O(logN), O(N)等)。 课程强调理论与实践相结合,通过Python代码逐步实现各种算法和数据结构。每种结构和算法都将深入讲解理论背景,并提供具体的Python实现。此外,课程还会探讨其在投资银行、人工智能、电子交易等领域的实际应用。
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 environmentdifferences between data structures and abstract data typesSection 2 - Arrays:what is an array data structurearrays related interview questionsSection 3 - Linked Lists:linked list data structure and its implementationdoubly linked listslinked lists related interview questionsSection 4 - Stacks and Queues:stacks and queuesstack memory and heap memoryhow the stack memory works exactly?stacks and queues related interview questionsSection 5 - Binary Search Trees:what are binary search treespractical applications of binary search treesproblems with binary treesSection 6 - Balanced Binary Trees (AVL Trees and Red-Black Trees):why to use balanced binary search treesAVL treesred-black treesSection 7 - Priority Queues and Heaps:what are priority queueswhat are heapsheapsort algorithm overviewSection 8 - Hashing and Dictionaries:associative arrays and dictionarieshow to achieve O(1) constant running time with hashingSection 9 - Graph Traversal:basic graph algorithmsbreadth-firstdepth-first searchstack memory visualization for DFSSection 10 - Shortest Path problems (Dijkstra's and Bellman-Ford Algorithms):shortest path algorithmsDijkstra's algorithmBellman-Ford algorithmhow to detect arbitrage opportunities on the FOREX?Section 11 - Spanning Trees (Kruskal's and Prim's Approaches):what are spanning treeswhat is the union-find data structure and how to use itKruskal's algorithm theory and implementation as wellPrim's algorithmSection 12 - Substring Search Algorithmswhat are substring search algorithms and why are they important in real world softwaresbrute-force substring search algorithmhashing and Rabin-Karp methodKnuth-Morris-Pratt substring search algorithmZ substring search algorithm (Z algorithm)implementations in PythonSection 13 - Hamiltonian Cycles (Travelling Salesman Problem)Hamiltonian cycles in graphswhat is the travelling salesman problem?how to use backtracking to solve the problemmeta-heuristic approaches to boost algorithmsSection 14 - Sorting Algorithmssorting algorithmsbubble sort, selection sort and insertion sortquicksort and merge sortnon-comparison based sorting algorithmscounting sort and radix sortSection 15 - 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 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.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. Research institutes use Python as a programming language in the main: there are a lot of library available for the public from machine learning to complex networks.Thanks for joining the course, let's get started!