آموزش الگوریتم‌های پیشرفته، برنامه‌نویسی پویا و الگوریتم‌های گراف - آخرین آپدیت

دانلود Advanced Algorithms, Dynamic Programming & Graph Algorithms

نکته: ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره: این دوره شامل Coursera Coach است! روشی هوشمندتر برای یادگیری با گفتگوهای تعاملی و آنی که به شما کمک می‌کند دانش خود را آزمایش کنید، فرضیات را به چالش بکشید و در حین پیشروی در دوره، درک خود را عمیق‌تر کنید. تسلط بر الگوریتم‌های پیشرفته برای حل مسائل پیچیده در کاربردهای واقعی ضروری است. در این دوره، شما عمیقاً به مفاهیم حیاتی مانند برنامه‌نویسی پویا (Dynamic Programming)، تئوری گراف، عملیات Heap و تکنیک‌های دستکاری بیت (Bit Manipulation) خواهید پرداخت. هر بخش بر پایه دانش قبلی شما بنا شده تا درک جامعی ایجاد کند که در مصاحبه‌های شغلی، برنامه‌نویسی رقابتی و وظایف روزمره کدنویسی Незамени خواهد بود. دوره با معرفی Heapها شروع می‌شود و درس‌های عملی در مورد پیاده‌سازی، درج و حذف عناصر و حل مسائلی مانند یافتن kth بزرگترین عنصر در یک آرایه ارائه می‌دهد. سپس به سراغ برنامه‌نویسی پویا می‌رویم و مسائل کلاسیکی مانند «بالا رفتن از پله‌ها»، «تغییر سکه» و «بلندترین زیردنباله مشترک» را بررسی می‌کنیم و تکنیک‌های بهینه‌سازی الگوریتم‌های بازگشتی با استفاده از Memorization و Tabulation را می‌آموزیم. همچنین الگوریتم‌های گراف از جمله BFS، DFS، Dijkstra و Bellman-Ford برای یافتن کوتاه‌ترین مسیر و همچنین درخت پوشای کمینه (MST) با الگوریتم Prim را بررسی خواهید کرد. این دوره برای هر کسی که به دنبال تعمیق دانش الگوریتمی خود است طراحی شده و برای یادگیرندگان سطح متوسط با درک پایه از ساختارهای داده مناسب است. هیچ تجربه قبلی در برنامه‌نویسی پویا یا الگوریتم‌های پیشرفته گراف مورد نیاز نیست، اما تسلط بر مبانی برنامه‌نویسی مفید خواهد بود. در پایان دوره، شما قادر خواهید بود مسائل پیچیده را با استفاده از برنامه‌نویسی پویا به طور بهینه حل کنید، الگوریتم‌های پیشرفته گراف را پیاده‌سازی کنید و از Heapها برای بهینه‌سازی راهکارهای خود استفاده نمایید. همچنین تجربه عملی در حل مسائل به سبک Leetcode که به طور مکرر در مصاحبه‌های فنی مطرح می‌شوند، کسب خواهید کرد.

سرفصل ها و درس ها

هیپ‌ها (Heaps) Heaps

  • مقدمه‌ای بر هیپ‌ها Introduction To Heaps

  • پیاده‌سازی هیپ‌ها Implementation Of Heaps

  • درج در هیپ Insertion in Heaps

  • پیاده‌سازی عملیات درج در هیپ Heap Insertion Implementation

  • حذف در هیپ Deletion in Heaps

  • عملیات Heapify Heapify

  • مسئله تمرینی ۱: kth بزرگترین عنصر در آرایه Practice Problem 1 - Kth Largest Element In An Array

  • مسئله تمرینی ۲: یافتن میانه از جریان داده Practice Problem 2 - Find Median from Data Stream

  • مسئله تمرینی ۳: kth بزرگترین عنصر در یک جریان Practice Problem 3 - Kth Largest Element In A Stream

  • Leetcode #1046: وزن آخرین سنگ (جاوا) Leetcode #1046 - Last Stone Weight - Java

  • Leetcode #23: ادغام K لیست مرتب شده Leetcode #23 - Merge K Sorted Lists

  • Leetcode #253: اتاق‌های جلسه ۲ Leetcode #253 - Meeting Rooms II

  • Leetcode #347: K عنصر پرتکرار برتر Leetcode #347 - Top K Frequent Elements

تئوری برنامه‌نویسی پویا + مسائل تمرینی DP (یک‌بعدی، دوبعدی و رشته‌ای) Dynamic Programming Theory + DP Practice Problems (1D + 2D + String DP)

  • مقدمه‌ای بر برنامه‌نویسی پویا Introduction to Dynamic Programming

  • مسئله تمرینی ۱: بالا رفتن از پله‌ها (جاوا) Practice Problem 1 - Climbing Stairs - Java

  • مسئله تمرینی ۲: بازی پرش (جاوا) Practice Problem 2 - Jump Game - Java

  • مسئله تمرینی ۳: تغییر سکه Practice Problem 3 - Coin Change

  • مسئله تمرینی ۴: مجموع هدف Practice Problem 4 - Target Sum

  • مسئله تمرینی ۵: بلندترین زیردنباله مشترک Practice Problem 5 - Longest Common Subsequence

  • مسئله تمرینی ۶: سارق خانه Practice Problem 6 - House Robber

  • مسئله تمرینی ۷: بلندترین زیردنباله افزایشی Practice Problem 7 - Longest Increasing Subsequence

  • مسئله تمرینی ۸: مجموع زیرمجموعه‌های برابر Practice Problem 8 - Partition Equal Subset Sum

  • مسئله تمرینی ۱۰: جایگزینی عدد صحیح Practice Problem 10 - Integer Replacement

  • مسئله تمرینی ۱۱: رمزگشایی روش‌ها Practice Problem 11 - Decode Ways

  • مسئله تمرینی ۱۲: سارق خانه ۲ Practice Problem 12 - House Robber II

  • مسئله تمرینی ۱۳: حداقل هزینه بالا رفتن از پله‌ها Practice Problem 13 - Min Cost Climbing Stairs

  • مسئله تمرینی ۱۴: بلندترین زیررشته پالیندروم Practice Problem 14 - Longest Palindromic Substring

  • مسئله تمرینی ۱۵: شکستن کلمات Practice Problem 15 - Word Break

  • مسئله تمرینی ۱۶: مسیرهای منحصر به فرد Practice Problem 16 - Unique Paths

  • مسئله تمرینی ۱۷: زیررشته‌های پالیندروم Practice Problem 17 - Palindromic Substrings

تکنیک‌های دستکاری بیت + مسائل تمرینی Leetcode Bit Manipulation Techniques + Leetcode Practice Problems

  • مقدمه‌ای بر عملگرهای بیتی Introduction to Bitwise Operators

  • عملگرهای بیتی رایج Common Bitwise Operators

  • Leetcode #136: عدد تک (جاوا) Leetcode #136 - Single Number - Java

  • Leetcode #338: شمارش بیت‌ها (جاوا) Leetcode #338 - Counting Bits - Java

  • Leetcode #287: یافتن عدد تکراری (جاوا) Leetcode #287 - Find the Duplicate Number - Java

  • Leetcode #29: تقسیم دو عدد صحیح (جاوا) Leetcode #29 - Divide Two Integers - Java

  • Leetcode #268: عدد گم شده (جاوا) Leetcode #268 - Missing Number - Java

  • Leetcode #191: تعداد بیت‌های ۱ (جاوا) Leetcode #191 - Number of 1 Bits - Java

  • Leetcode #371: مجموع دو عدد صحیح (جاوا) Leetcode #371 - Sum Of Two Integers - Java

  • Leetcode #7: معکوس کردن عدد صحیح (جاوا) Leetcode #7 - Reverse Integer - Java

ساختار داده مجموعه مجزا (Disjoint Set) و الگوریتم‌های Union Find Disjoint Set Data Structure - Union Find Algorithms

  • مقدمه‌ای بر ساختار داده مجموعه مجزا Introduction to Disjoint Set Data Structure

  • درک ساختار داده مجموعه مجزا Understanding Disjoint Set Data Structure

  • پیاده‌سازی ساختار داده مجموعه مجزا - بخش ۱ Implementing Disjoint Set Data Structure Part 1

  • بهینه‌سازی Union By Rank Union By Rank Optimization

  • پیاده‌سازی Union By Rank Union By Rank Implementation

  • بهینه‌سازی فشرده‌سازی مسیر (Path Compression) Path Compression Optimization

  • پیاده‌سازی بهینه‌سازی فشرده‌سازی مسیر Path Compression Optimization Implementation

تئوری گراف + مسائل تمرینی گراف (BFS/DFS/کوتاه‌ترین مسیر/MST) Graphs Theory + Graph Practice Problems (BFS/DFS/Shortest Path Algorithm/MST)

  • گراف‌ها چیستند؟ What Are Graphs

  • گراف‌های جهت‌دار در مقابل بدون جهت Directed vs Undirected Graphs

  • گراف‌های وزن‌دار در مقابل بدون وزن Weighted vs Unweighted Graphs

  • اصطلاحات گراف - بخش ۱ Terms Of Graphs Part 1

  • انواع گراف - بخش ۱ Types Of Graphs Part 1

  • انواع گراف - بخش ۲ Types Of Graphs Part 2

  • پیاده‌سازی گراف - بخش ۱ Implementing Graphs Part 1

  • پیاده‌سازی گراف - بخش ۲ Implementing Graphs Part 2

  • پیاده‌سازی گراف - بخش ۳ Graph Implementation Part 3

  • نمایش ماتریس مجاورت گراف Graph Adjacency Matrix Demonstration

  • نمایش لیست مجاورت گراف Graph Adjacency List Demonstration

  • مقدمه‌ای بر پیمایش‌ها Introduction To Traversals

  • نحوه عملکرد BFS BFS Working

  • پیاده‌سازی BFS BFS Implementation

  • حل مسئله پرتقال‌های فاسد Rotting Oranges Property Solution

  • ویژگی اول BFS BFS Property 1

  • BFS روی گراف‌های وزن‌دار باینری BFS Over Binary Weighted Graphs

  • مقدمه‌ای بر DFS Introduction to DFS

  • پیاده‌سازی تکراری (Iterative) DFS DFS Iterative Implementation

  • پیاده‌سازی بازگشتی (Recursive) DFS DFS Recursive Implementation

  • ویژگی‌های مهم DFS DFS Important Properties

  • تشخیص چرخه - بخش ۱ Cycle Detection Part 1

  • تشخیص چرخه - بخش ۲ Cycle Detection Part 2

  • تشخیص چرخه - بخش ۳ Cycle Detection Part 3

  • پیاده‌سازی تشخیص چرخه Cycle Detection Implementation

  • مرتب‌سازی توپولوژیک چیست؟ What Is Topological Sorting

  • مثال ۱ مرتب‌سازی توپولوژیک Topological Sorting Example 1

  • الگوریتم کوتاه‌ترین مسیر تک‌منبعی Single Source Shortest Path Algorithm

  • الگوریتم دایکسترا (Dijkstra) Dijkstra's Algorithm

  • پیاده‌سازی الگوریتم دایکسترا Dijkstra's Algorithm Implementation

  • مقدمه‌ای بر الگوریتم بلمن-فورد Introduction To Bellman-Ford Algorithm

  • نحوه عملکرد الگوریتم بلمن-فورد Bellman-Ford Algorithm Working

  • پیاده‌سازی الگوریتم بلمن-فورد Bellman-Ford Algorithm Implementation

  • مقدمه‌ای بر درخت پوشای کمینه (MST) Introduction To Minimum Spanning Tree

  • الگوریتم پریم (Prim) Prim's Algorithm

  • پیاده‌سازی الگوریتم پریم Prim's Algorithm Implementation

  • مسئله تمرینی ۱: زمان‌بندی دروس Practice Problem 1 - Course Schedule

  • مسئله تمرینی ۲: تعداد جزایر Practice Problem 2 - Number of Islands

  • مسئله تمرینی ۳: یافتن قاضی شهر Practice Problem 3 - Find the Town Judge

  • مسئله تمرینی ۴: مناطق محصور شده Practice Problem 4 - Surrounded Regions

  • مسئله تمرینی ۵: تعداد محیط‌های بسته Practice Problem 5 - Number of Enclaves

  • مسئله تمرینی ۶: پر کردن سیل (Flood Fill) Practice Problem 6 - Flood Fill

  • مسئله تمرینی ۸: پرتقال‌های فاسد Practice Problem 8 - Rotting Oranges

  • مسئله تمرینی ۹: درخت معتبر گراف Practice Problem 9 - Graph Valid Tree

  • مسئله تمرینی ۱۰: تعداد مؤلفه‌های متصل در گراف بدون جهت Practice Problem 10 - Number Of Connected Components In An Undirected Graph

  • مسئله تمرینی ۱۱: آب اقیانوس آرام و 태평양 Practice Problem 11 - Pacific Atlantic Water

  • مسئله تمرینی ۱۲: دیکشنری بیگانگان Practice Problem 12 - Alien Dictionary

  • مسئله تمرینی ۱۳: کلون کردن گراف Practice Problem 13 - Clone Graph

الگوریتم‌های حریصانه (Greedy) Greedy Algorithms

  • مقدمه‌ای بر الگوریتم‌های حریصانه Introduction To Greedy Algorithms

  • مسئله تمرینی ۱: حداقل افزودنی برای معتبر کردن پرانتزها Practice Problem 1 - Minimum Add To Make Parentheses Valid

  • مسئله تمرینی ۲: بهترین زمان خرید و فروش سهام ۲ Practice Problem 2 - Best Time To Buy And Sell Stock II

  • مسئله تمرینی ۳: آب‌نبات Practice Problem 3 - Candy

تئوری بازی‌ها Game Theory

  • مسئله تمرینی ۱: بازی نیم (Nim) Practice Problem 1 - Nim's Game

الگوریتم‌های پیشرفته تطبیق رشته‌ها Advanced String Matching Algorithms

  • مقدمه‌ای بر تطبیق الگو (Pattern Matching) Introduction To Pattern Matching

  • تطبیق الگو با روش Brute Force Pattern Matching Brute Force

  • مقدمه‌ای بر الگوریتم KMP Introduction to KMP Algorithm

  • الگوریتم KMP نسخه ۱: فضای اضافی KMP Algorithm Version 1 - Extra Space

  • رویکرد Brute Force برای بلندترین پیشوند-پسوند Longest Prefix Suffix Brute Force Approach

  • پیاده‌سازی Brute Force برای بلندترین پیشوند-پسوند Longest Prefix Suffix Brute Force Implementation

  • رویکرد بهینه‌شده برای بلندترین پیشوند-پسوند Longest Prefix Suffix Optimized Approach

  • پیاده‌سازی رویکرد بهینه‌شده برای بلندترین پیشوند-پسوند Longest Prefix Suffix Optimized Approach Implementation

  • الگوریتم KMP: رویکرد بهینه نهایی KMP Algorithm - Final Optimized Approach

  • پیاده‌سازی رویکرد بهینه نهایی الگوریتم KMP KMP Algorithm - Final Optimized Approach Implementation

مسائل مربوط به رشته‌ها String Problems

  • مسئله تمرینی ۱: بلندترین رشته پالیندروم Practice Problem 1 - Longest Palindromic String

ساختارهای داده پیشرفته: درخت‌های قطعه‌ای (Segment Trees) Advanced Data Structure - Segment Trees

  • مقدمه‌ای بر مسئله پرس‌وجوی مجموع محدوده (Range Sum Query) Introduction to Range Sum Query Problem

  • مقدمه‌ای بر درخت قطعه‌ای: ساخت یک درخت قطعه‌ای Introduction To Segment Tree - Building A Segment Tree

  • پاسخ به پرس‌وجوها با استفاده از درخت‌های قطعه‌ای Answering Queries Using Segment Trees

  • به‌روزرسانی مقادیر در درخت قطعه‌ای Segment Tree Updating Values

  • پیاده‌سازی تابع ساخت درخت قطعه‌ای Segment Tree Build Function Implementation

  • پیاده‌سازی تابع پرس‌وجوی درخت قطعه‌ای Segment Tree Query Function Implementation

  • پیاده‌سازی تابع به‌روزرسانی درخت قطعه‌ای Segment Tree Update Function Implementation

نمایش نظرات

آموزش الگوریتم‌های پیشرفته، برنامه‌نویسی پویا و الگوریتم‌های گراف
جزییات دوره
22h 11m
118
(آخرین آپدیت)
46
- از 5
دارد
دارد
دارد
Chris Croft
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Chris Croft Chris Croft

مربی مدیریت، سخنران، نویسنده