ساختارهای داده و الگوریتم‌ها: آموزش عمیق DSA با استفاده از جاوا - آخرین آپدیت

دانلود Data Structures and Algorithms: In Depth DSA using Java

نکته: ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره:

آموزش ساختمان داده و الگوریتم در جاوا (DSA) با مثال‌های پویا

با این دوره، ساختمان داده و الگوریتم (DSA) را در جاوا به همراه مثال‌های متحرک یاد بگیرید. این دوره شامل مباحث برنامه‌نویسی پویا (Dynamic Programming)، بازگشت به عقب (Backtracking) و موارد دیگر است.

آنچه در این دوره خواهید آموخت:

  • پیچیدگی الگوریتم‌ها: درک میزان زمان و حافظه مورد نیاز الگوریتم‌ها در زمان اجرا.
  • جستجو و مرتب‌سازی: یادگیری و مقایسه الگوریتم‌های مختلف مورد استفاده در جستجو و مرتب‌سازی.
  • ساختمان داده‌ها: یادگیری ساختمان داده‌های مختلف و نحوه استفاده از آنها در برنامه‌ها.
  • پیاده‌سازی در جاوا: یادگیری نحوه کدنویسی و پیاده‌سازی ساختمان داده‌ها و الگوریتم‌های مختلف در جاوا.

پیش‌نیازها:

  • داشتن تجربه برنامه‌نویسی قبلی (در هر زبانی).
  • آشنایی اولیه با زبان برنامه‌نویسی جاوا.
  • نرم‌افزارهای مورد نیاز برای این دوره متن‌باز و رایگان هستند. مراحل دانلود و نصب آنها در دوره توضیح داده خواهد شد.

این دوره در ویندوز تهیه شده است، اما کاربران سایر سیستم‌عامل‌ها مانند MacOS یا Linux نیز می‌توانند به راحتی از ابزارهای مورد نیاز استفاده کرده و تجربه برنامه‌نویسی یکسانی داشته باشند.

این دوره به شما کمک می‌کند تا مبانی ساختمان داده‌ها و نحوه پیاده‌سازی الگوریتم‌ها در جاوا را بهتر درک کنید. این دوره شامل ویدیوهایی است که مفاهیم تئوری + پیاده‌سازی در جاوا را پوشش می‌دهد.

مفاهیم و محتوای بسیار زیادی در این دوره وجود دارد:

  • مبانی ساختمان داده‌ها و الگوریتم‌ها

  • تحلیل الگوریتم‌ها (Big O، پیچیدگی زمانی و مکانی)

  • بازگشت (Recursion) و تحلیل الگوریتم‌های بازگشتی

  • الگوریتم‌های جستجو

  • الگوریتم‌های مرتب‌سازی

  • لیست پیوندی (Linked List)

  • پشته (Stack)

  • صف (Queue)

  • درخت دودویی (Binary Tree)

  • درخت جستجوی دودویی (Binary Search Tree)

  • درخت جستجوی دودویی متوازن (Balanced Binary Search Tree)

  • صف اولویت‌دار و هیپ (Priority Queue and Heap)

  • درهم‌سازی (Hashing)

  • گراف (Graph)

  • الگوریتم‌های پیمایش گراف (Graph Traversal Algorithms)

مباحث پیشرفته الگوریتم‌ها:

  • مجموعه‌ها و مجموعه‌های مجزا (Sets and Disjoint Sets)

  • روش تقسیم و غلبه - معرفی

  • تقسیم و غلبه - جستجوی دودویی

  • تقسیم و غلبه - یافتن حداکثر و حداقل

  • تقسیم و غلبه - مرتب‌سازی ادغامی (Merge Sort)

  • تقسیم و غلبه - مرتب‌سازی سریع (Quick Sort)

  • تقسیم و غلبه - الگوریتم انتخاب

  • تقسیم و غلبه - ضرب ماتریس استراسن

  • تقسیم و غلبه - نزدیک‌ترین زوج

  • تقسیم و غلبه - پوش محدب

  • روش حریصانه - معرفی

  • روش حریصانه - مسئله کوله‌پشتی

  • روش حریصانه - تعیین توالی کارها با مهلت (Job Sequencing with Deadlines)

  • روش حریصانه - درخت پوشای کمینه (Prim's & Kruskal's Algorithms)

  • روش حریصانه - ذخیره‌سازی بهینه در درخت‌ها

  • روش حریصانه - الگوی ادغام بهینه

  • روش حریصانه - کوتاه‌ترین مسیر از یک مبدأ (Dijkstra's Algorithm)

  • برنامه‌نویسی پویا - معرفی

  • برنامه‌نویسی پویا - گراف‌های چندمرحله‌ای

  • برنامه‌نویسی پویا - کوتاه‌ترین مسیر بین همه جفت راس‌ها

  • برنامه‌نویسی پویا - کوتاه‌ترین مسیر از یک مبدأ

  • برنامه‌نویسی پویا - درخت‌های جستجوی دودویی بهینه

  • برنامه‌نویسی پویا - مسئله کوله‌پشتی 0/1

  • برنامه‌نویسی پویا - طراحی قابلیت اطمینان

  • برنامه‌نویسی پویا - مسئله فروشنده دوره‌گرد

  • بازگشت به عقب - معرفی

  • بازگشت به عقب - مسئله n وزیر

  • بازگشت به عقب - مسئله جمع زیرمجموعه‌ها

  • بازگشت به عقب - مسئله رنگ‌آمیزی گراف

  • بازگشت به عقب - مسئله دورهای همیلتونی

  • بازگشت به عقب - مسئله کوله‌پشتی 0/1

  • انشعاب و تحدید - معرفی

  • انشعاب و تحدید - مسئله n وزیر

  • انشعاب و تحدید - مسئله تعیین توالی کارها

  • انشعاب و تحدید - مسئله کوله‌پشتی 0/1

هر یک از این بخش‌ها شامل آموزش‌های ویدیویی مفصل است.


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

Introduction

  • نتایج و سرفصل دروس دوره Course Outcomes & Curriculum

  • چرا به ساختمان داده نیاز داریم؟ Why we Need Data Structures ?

  • چرا الگوریتم ها را یاد بگیریم؟ Why Learn Algorithms ?

  • نوع داده انتزاعی (ADT) Abstract Data Type (ADT)

  • نصب JDK 8 روی ویندوز Installing JDK 8 on Windows

  • نصب IntelliJ روی ویندوز Installing IntelliJ on Windows

تجزیه و تحلیل الگوریتم ها Analysis of Algorithms

  • پیچیدگی زمانی (Time Complexity) Time Complexity

  • مرتبه رشد (Order of Growth) Order of Growth

  • تجزیه و تحلیل مجانبی (Asymptotic Analysis) Asymptotic Analysis

  • نماد Big-Oh Big-Oh Notation

  • نماد Big Omega Big Omega Notation

  • نماد Big Theta Big Theta Notation

  • خلاصه عملکرد (Performance Summary) Performance Summary

  • پیچیدگی فضایی (Space Complexity) Space Complexity

  • تجزیه و تحلیل الگوریتم ها Analysis of Algorithms

بازگشت (Recursion) Recursion

  • بازگشت چگونه کار می کند؟ How Recursion Works ?

  • آزمایشگاه: تکرار در مقابل بازگشت - پیاده سازی Lab: Iteration Vs Recursion - Implementation

  • پیچیدگی زمانی بازگشت - رابطه بازگشتی Time Complexity of Recursion - Recurrence Relation

  • رابطه بازگشتی - یک مثال دیگر Recurrence Relation - Another example

  • بازگشت دُم و سَر (Tail and Head Recursion) Tail and Head Recursion

  • بازگشت درختی (Tree Recursion) Tree Recursion

  • بازگشت غیرمستقیم (Indirect Recursion) Indirect Recursion

  • مجموع اعداد طبیعی N Sum of N Natural Numbers

  • آزمایشگاه: مجموع N عدد - پیاده سازی Lab: Sum of N Numbers - Implementation

  • فاکتوریل Factorial

  • آزمایشگاه: فاکتوریل - پیاده سازی Lab: Factorial - Implementation

الگوریتم های جستجو Searching Algorithms

  • الگوریتم جستجوی خطی Linear Search Algorithm

  • آزمایشگاه: جستجوی خطی - پیاده سازی Lab: Linear Search - Implementation

  • الگوریتم تکراری جستجوی دودویی Binary Search Iterative Algorithm

  • آزمایشگاه: جستجوی دودویی با استفاده از تکرار - پیاده سازی Lab: Binary Search using Iterations - Implementation

  • الگوریتم بازگشتی جستجوی دودویی Binary Search Recursive Algorithm

  • آزمایشگاه: جستجوی دودویی با استفاده از بازگشت - پیاده سازی Lab: Binary Search using Recursion - Implementation

الگوریتم های مرتب سازی Sorting Algorithms

  • مقدمه ای بر مرتب سازی Sorting Introduction

  • مرتب سازی پایدار و ناپایدار Stable and Unstable Sorting

  • مرتب سازی انتخابی - چگونه کار می کند؟ Selection Sort - How does it Work ?

  • مرتب سازی انتخابی - الگوریتم و تجزیه و تحلیل Selection Sort - Algorithm and Analysis

  • آزمایشگاه: مرتب سازی انتخابی - پیاده سازی Lab: Selection Sort - Implementation

  • مرتب سازی درجی - چگونه کار می کند؟ Insertion Sort - How does it Work ?

  • مرتب سازی درجی - الگوریتم و تجزیه و تحلیل Insertion Sort - Algorithm and Analysis

  • آزمایشگاه: مرتب سازی درجی - پیاده سازی Lab: Insertion Sort - Implementation

  • مرتب سازی حبابی - چگونه کار می کند؟ Bubble Sort - How does it Work ?

  • مرتب سازی حبابی - الگوریتم و تجزیه و تحلیل Bubble Sort - Algorithm and Analysis

  • آزمایشگاه: مرتب سازی حبابی - پیاده سازی Lab: Bubble Sort - Implementation

  • مرتب سازی شِل - چگونه کار می کند؟ Shell Sort - How does it Work ?

  • مرتب سازی شِل - الگوریتم و تجزیه و تحلیل Shell Sort - Algorithm and Analysis

  • آزمایشگاه: مرتب سازی شِل - پیاده سازی Lab: Shell Sort - Implementation

  • مرتب سازی ادغامی - چگونه کار می کند؟ Merge Sort - How does it Work ?

  • مرتب سازی ادغامی - الگوریتم Merge Sort - Algorithm

  • ادغام - الگوریتم Merging - Algorithm

  • مرتب سازی ادغامی - تجزیه و تحلیل پیچیدگی Merge Sort - Complexity Analysis

  • آزمایشگاه: مرتب سازی ادغامی - پیاده سازی Lab: Merge Sort - Implementation

  • مرتب سازی سریع - چگونه کار می کند؟ Quick Sort - How does it Work ?

  • مرتب سازی سریع - الگوریتم Quick Sort - Algorithm

  • مرتب سازی سریع - تجزیه و تحلیل پیچیدگی Quick Sort - Complexity Analysis

  • آزمایشگاه: مرتب سازی سریع - پیاده سازی Lab: Quick Sort - Implementation

  • خلاصه پیچیدگی ها - الگوریتم های مرتب سازی Summary of Complexities - Sorting Algorithms

لیست پیوندی Linked List

  • چرا از لیست پیوندی استفاده می کنیم؟ Why do we use Linked List ?

  • ایجاد گره لیست پیوندی Creating Node of Linked List

  • بازی با پیوندهای لیست پیوندی Playing with the links of Linked List

  • چگونه لیست پیوندی ایجاد کنیم How to Create Linked List

  • نمایش یا پیمایش لیست پیوندی Displaying or Traversing Linked List

  • آزمایشگاه: ایجاد و نمایش لیست پیوندی - پیاده سازی Lab: Creating and Displaying Linked List - Implementation

  • درج عنصر در ابتدای لیست پیوندی Insert Element at the Beginning of Linked List

  • آزمایشگاه: درج عنصر در ابتدای لیست پیوندی - پیاده سازی Lab: Insert Element at the Beginning of Linked List - Implementation

  • درج عنصر در هر جایی بین لیست پیوندی Insert Element Anywhere in between the Linked List

  • آزمایشگاه: درج عنصر در هر جایی بین لیست پیوندی - پیاده سازی Lab: Insert Element Anywhere in Between the Linked List - Implementation

  • حذف عنصر در ابتدای لیست پیوندی Delete Element at Beginning of Linked List

  • آزمایشگاه: حذف عنصر در ابتدای لیست پیوندی - پیاده سازی Lab: Delete Element at Beginning of the Linked List - Implementation

  • حذف عنصر در انتهای لیست پیوندی Delete Element at End of Linked List

  • آزمایشگاه: حذف عنصر در انتهای لیست پیوندی - پیاده سازی Lab: Delete Element at End of Linked List - Implementation

  • حذف عنصر در هر جایی بین لیست پیوندی Delete Element Anywhere in between Linked List

  • آزمایشگاه: حذف عنصر در هر جایی بین لیست پیوندی - پیاده سازی Lab: Delete Element Anywhere in between Linked List - Implementation

  • جستجوی عنصر در لیست پیوندی Searching Element in Linked List

  • آزمایشگاه: جستجو در لیست پیوندی - پیاده سازی Lab: Searching the Linked List - Implementation

  • راه حل تمرین آزمایشگاه: درج عناصر به ترتیب مرتب شده Lab Exercise Solution: Inserting Elements in Sorted Order

لیست پیوندی حلقوی Circular Linked List

  • لیست پیوندی حلقوی چیست What is Circular Linked List

  • ایجاد لیست پیوندی حلقوی Creating Circular Linked List

  • پیمایش لیست پیوندی حلقوی Traversing Circular Linked List

  • آزمایشگاه: ایجاد و نمایش لیست پیوندی حلقوی - پیاده سازی Lab: Creating and Displaying Circular Linked List - Implementation

  • درج عنصر در ابتدای لیست پیوندی حلقوی Insert Element at the Beginning of Circular Linked List

  • آزمایشگاه: درج عنصر در ابتدای لیست پیوندی حلقوی - پیاده سازی Lab: Insert Element at the Beginning of Circular Linked List - Implementation

  • درج عنصر در هر جایی بین لیست پیوندی حلقوی Insert Element Anywhere in between the Circular Linked List

  • آزمایشگاه: درج عنصر در هر جایی بین لیست پیوندی حلقوی - پیاده سازی Lab: Insert Element Anywhere in Between the Circular Linked List -Implementation

  • حذف عنصر در ابتدای لیست پیوندی حلقوی Delete Element at Beginning of Circular Linked List

  • آزمایشگاه: حذف عنصر در ابتدای لیست پیوندی حلقوی - پیاده سازی Lab: Delete Element at Beginning of the Circular Linked List - Implementation

  • حذف عنصر در انتهای لیست پیوندی حلقوی Delete Element at End of Circular Linked List

  • آزمایشگاه: حذف عنصر در انتهای لیست پیوندی حلقوی - پیاده سازی Lab: Delete Element at End of Circular Linked List - Implementation

  • حذف عنصر در هر جایی بین لیست پیوندی حلقوی Delete Element Anywhere in between Circular Linked List

  • آزمایشگاه: حذف عنصر در هر جایی بین لیست پیوندی حلقوی - پیاده سازی Lab: Delete Element Anywhere in between Circular Linked List - Implementation

لیست پیوندی دوطرفه Doubly Linked List

  • لیست پیوندی دوطرفه چیست What is Doubly Linked List

  • ایجاد گره لیست پیوندی دوطرفه Creating Node of Doubly Linked List

  • بازی با پیوندهای لیست پیوندی دوطرفه Playing with links of Doubly Linked List

  • ایجاد لیست پیوندی دوطرفه Creating Doubly Linked List

  • پیمایش لیست پیوندی دوطرفه Traversing Doubly Linked List

  • آزمایشگاه: ایجاد و نمایش لیست پیوندی دوطرفه - پیاده سازی Lab: Creating and Displaying Doubly Linked List - Implementation

  • درج عنصر در ابتدای لیست پیوندی دوطرفه Insert Element at the Beginning of Doubly Linked List

  • آزمایشگاه: درج عنصر در ابتدای لیست پیوندی دوطرفه - پیاده سازی Lab: Insert Element at the Beginning of Doubly Linked List - Implementation

  • درج عنصر در هر جایی بین لیست پیوندی دوطرفه Insert Element Anywhere in between the Doubly Linked List

  • آزمایشگاه: درج عنصر در هر جایی بین لیست پیوندی دوطرفه - پیاده سازی Lab: Insert Element Anywhere in Between the Doubly Linked List -Implementation

  • حذف عنصر در ابتدای لیست پیوندی دوطرفه Delete Element at Beginning of Doubly Linked List

  • آزمایشگاه: حذف عنصر در ابتدای لیست پیوندی دوطرفه - پیاده سازی Lab: Delete Element at Beginning of the Doubly Linked List - Implementation

  • حذف عنصر در انتهای لیست پیوندی دوطرفه Delete Element at End of Doubly Linked List

  • آزمایشگاه: حذف عنصر در انتهای لیست پیوندی دوطرفه - پیاده سازی Lab: Delete Element at End of Doubly Linked List - Implementation

  • حذف عنصر در هر جایی بین لیست پیوندی دوطرفه Delete Element Anywhere in between Doubly Linked List

  • آزمایشگاه: حذف عنصر در هر جایی بین لیست پیوندی دوطرفه - پیاده سازی Lab: Delete Element Anywhere in between Doubly Linked List - Implementation

پشته ها (Stacks) Stacks

  • ساختمان داده پشته چیست What is Stack Data Structure

  • پشته ها با استفاده از آرایه ها Stacks using Arrays

  • آزمایشگاه: پشته ها با استفاده از آرایه ها - پیاده سازی Lab: Stacks using Arrays - Implementation

  • پشته ها با استفاده از لیست پیوندی Stacks using Linked List

  • آزمایشگاه: پشته ها با استفاده از لیست پیوندی - پیاده سازی Lab: Stacks using Linked List - Implementation

صف ها (Queues) Queues

  • ساختمان داده صف چیست What is Queue Data Structure

  • صف ها با استفاده از آرایه ها Queues using Arrays

  • آزمایشگاه: صف ها با استفاده از آرایه ها - پیاده سازی Lab: Queues using Arrays - Implementation

  • صف ها با استفاده از لیست پیوندی Queues using Linked List

  • آزمایشگاه: صف ها با استفاده از لیست پیوندی - پیاده سازی Lab: Queues using Linked List - Implementation

  • صف های دوطرفه (Double Ended Queues) چیستند What are Double Ended Queues

  • آزمایشگاه: صف های دوطرفه با استفاده از لیست پیوندی - پیاده سازی Lab: Double Ended Queues using Linked List - Implementation

درخت های دودویی (Binary Trees) Binary Trees

  • ساختمان داده درختی - تعاریف و خواص آن Tree Data Structure - Its Definitions and Properties

  • درخت ها - اصطلاحات Trees - Terminology

  • ارتفاع و سطوح درخت ها Height and Levels of Trees

  • درجه گره و درخت Degree of Node and Tree

  • درخت های دودویی و خواص آن Binary Trees and Its Properties

  • درخت دودویی مناسب (Proper Binary Tree) Proper Binary Tree

  • درخت دودویی کامل (Full Binary Tree) Full Binary Tree

  • درخت دودویی تمام (Complete Binary Tree) Complete Binary Tree

  • درخت دودویی کامل در مقابل تمام در مقابل مناسب Full Vs Complete Vs Proper Binary Tree

  • نمایش درخت دودویی - مبتنی بر آرایه Binary Tree Representation - Array Based

  • نمایش درخت دودویی - مبتنی بر پیوند Binary Tree Representation - Linked Based

  • پیمایش درخت های دودویی Traversing Binary Trees

  • پیمایش درخت های دودویی - پیش ترتیب (Preorder) Binary Trees Traversal - Preorder

  • پیمایش درخت های دودویی - میان ترتیب (Inorder) Binary Trees Traversal - Inorder

  • پیمایش درخت های دودویی - پس ترتیب (Postorder) Binary Trees Traversal - Postorder

  • پیمایش درخت های دودویی - ترتیب سطحی (Level Order) Binary Trees Traversal - Level Order

  • روش آسان برای به خاطر سپردن پیمایش های درخت های دودویی Easy way of remembering Binary Trees Traversals

درخت جستجوی دودویی (Binary Search Tree) Binary Search Tree

  • درخت های جستجوی دودویی چیستند What are Binary Search Trees

  • درخت های جستجوی دودویی - جستجو (مفهوم) Binary Search Trees - Searching (Concept)

  • درخت های جستجوی دودویی - تابع جستجوی تکراری Binary Search Trees - Iterative Search Function

  • درخت های جستجوی دودویی - تابع جستجوی بازگشتی Binary Search Trees - Recursive Search Function

  • درخت های جستجوی دودویی - درج (مفهوم) Binary Search Trees - Insertion (Concept)

  • درخت های جستجوی دودویی - تابع درج تکراری Binary Search Trees - Iterative Insert Function

  • درخت های جستجوی دودویی - تابع درج بازگشتی Binary Search Trees - Recursive Insert Function

  • پیمایش درخت جستجوی دودویی Traversing Binary Search Tree

  • تابع برای پیمایش میان ترتیب Function for Inorder Traversal

  • آزمایشگاه: درج در درخت جستجوی دودویی - پیاده سازی Lab: Insertion in Binary Search Tree - Implementation

  • آزمایشگاه: درج بازگشتی در درخت جستجوی دودویی - پیاده سازی Lab: Recursive Insertion in Binary Search Tree - Implementation

  • تابع برای پیمایش پیش ترتیب Function for Preorder Traversal

  • آزمایشگاه: پیمایش پیش ترتیب - پیاده سازی Lab: Preorder Traversal - Implementation

  • تابع برای پیمایش پس ترتیب Function for Postorder Traversal

  • آزمایشگاه: پیمایش پس ترتیب - پیاده سازی Lab: Postorder Traversal - Implementation

  • تابع برای پیمایش ترتیب سطحی Function for Level Order Traversal

  • آزمایشگاه: پیمایش ترتیب سطحی - پیاده سازی Lab: Level Order Traversal - Implementation

  • آزمایشگاه: جستجوی تکراری در درخت جستجوی دودویی - پیاده سازی Lab: Iterative Searching in Binary Search Tree - Implementation

  • آزمایشگاه: جستجوی بازگشتی در درخت جستجوی دودویی - پیاده سازی Lab: Recursive Searching in Binary Search Tree - Implementation

  • درخت جستجوی دودویی - حذف Binary Search Tree - Deletion

  • درخت جستجوی دودویی - حذف مورد-گره برگ (Leaf Node) Binary Search Tree - Deletion Case-Leaf Node

  • درخت جستجوی دودویی - حذف مورد-گره با یک زیردرخت Binary Search Tree - Deletion Case-Node with One Subtree

  • درخت جستجوی دودویی - حذف مورد-گره با هر دو زیردرخت Binary Search Tree - Deletion Case-Node with Both Subtrees

  • آزمایشگاه: حذف در درخت جستجوی دودویی - پیاده سازی Lab: Deletion in Binary Search Tree - Implementation

  • شمارش تعداد گره ها در درخت دودویی Count Number of Nodes in Binary Tree

  • آزمایشگاه: شمارش عملیات درخت جستجوی دودویی - پیاده سازی Lab: Count Operations of Binary Search Tree - Implementation

  • یافتن ارتفاع درخت دودویی Find Height of Binary Tree

  • آزمایشگاه: عملیات ارتفاع درخت جستجوی دودویی - پیاده سازی Lab: Height Operations of Binary Search Tree - Implementation

  • عملکرد و مشکل درخت های جستجوی دودویی Performance and Problem of Binary Search Trees

موضوع پیشرفته: درخت های متوازن (نظریه) Advance Topic: Balanced Trees (Theory)

  • درخت های جستجوی متوازن Balanced Search Trees

  • درخت های AVL AVL Trees

  • چرخش های درخت AVL برای درج AVL Tree Rotations for Insertion

  • درخت AVL - چرخش LL AVL Tree - LL Rotation

  • درخت AVL - چرخش RR AVL Tree - RR Rotation

  • درخت AVL - چرخش LR AVL Tree - LR Rotation

  • درخت AVL - چرخش RL AVL Tree - RL Rotation

  • چرخش های درخت AVL بعد از حذف AVL Tree Rotations after Deletion

  • تجزیه و تحلیل عملکرد درخت های AVL Performance Analysis of AVL Trees

  • درخت های سرخ-سیاه Red-Black Trees

  • درخت های سرخ-سیاه - بازسازی Red-Black Trees - Restructuring

  • درخت های سرخ-سیاه - درج Red-Black Trees - Insertion

  • درخت های سرخ-سیاه - حذف Red-Black Trees - Deletion

  • تجزیه و تحلیل عملکرد درخت های سرخ-سیاه Performance Analysis of Red-Black Trees

  • درخت های Splay Splay Trees

  • درخت های Splay - بازسازی Zig-Zig Splay Trees - Zig-Zig Restructuring

  • درخت های Splay - بازسازی Zig-Zag Splay Trees - Zig-Zag Restructuring

  • درخت های Splay - بازسازی Zig Splay Trees - Zig Restructuring

  • درخت های Splay - Splaying Splay Trees - Splaying

  • تجزیه و تحلیل عملکرد درخت های Splay Performance Analysis of Splay Trees

Heap ها و صف های اولویت دار Heaps and Priority Queues

  • صف های اولویت دار چیستند؟ What are Priority Queues ?

  • ساختمان داده Heap Heaps Data Structure

  • Heap ها - درج Heaps - Insertion

  • Heap ها - تابع درج Heaps - Insert Function

  • آزمایشگاه: ایجاد Heap ها با استفاده از تابع درج - پیاده سازی Lab: Creating Heaps using Insert function - Implementation

  • Heap ها - حذف Heaps - Deletion

  • Heap ها - تابع حذف Heaps - Delete Function

  • آزمایشگاه: حذف در Heap ها - پیاده سازی Lab: Deletion in Heaps - Implementation

  • مرتب سازی Heap - چگونه کار می کند؟ Heap Sort - How does it Work ?

  • مرتب سازی Heap - الگوریتم و تجزیه و تحلیل Heap Sort - Algorithm and Analysis

  • آزمایشگاه: مرتب سازی Heap - پیاده سازی Lab: Heap Sort - Implementation

بازبینی الگوریتم های مرتب سازی - مبتنی بر شاخص Sorting Algorithms Revisited - Index Based

  • مرتب سازی شمارشی (Count Sort) - چگونه کار می کند Count Sort - How does it Work

  • مرتب سازی شمارشی - الگوریتم و تجزیه و تحلیل Count Sort - Algorithm and Analysis

  • مرتب سازی مبنایی (Radix Sort) - چگونه کار می کند Radix Sort - How does it Work

  • مرتب سازی مبنایی - الگوریتم و تجزیه و تحلیل Radix Sort - Algorithm and Analysis

  • مرتب سازی سطلی (Bucket Sort) - چگونه کار می کند Bucket Sort - How does it Work

  • مرتب سازی سطلی - الگوریتم و تجزیه و تحلیل Bucket Sort - Algorithm and Analysis

  • خلاصه پیچیدگی ها - الگوریتم های مرتب سازی مبتنی بر شاخص Summary of Complexities - Index Based Sorting Algorithms

درهم سازی (Hashing) Hashing

  • درهم سازی چیست What is Hashing

  • زنجیره سازی (Chaining) - طرح تشخیص تصادم (Collision Detection) Chaining - Collision Detection Scheme

  • آزمایشگاه: زنجیره سازی درهم - پیاده سازی Lab: Hash Chaining - Implementation

  • کاوش خطی (Linear Probing) Linear Probing

  • آزمایشگاه: کاوش خطی درهم - پیاده سازی Lab: Hash Linear Probing - Implementation

  • کاوش درجه دوم (Quadratic Probing) Quadratic Probing

  • درهم سازی مضاعف (Double Hashing) Double Hashing

گراف ها Graphs

  • گراف ها - مقدمه Graphs - Introduction

  • درجه یک راس (Vertex) Degree of a Vertex

  • مسیر و دور Path and Cycle

  • زیرگراف ها و مولفه های همبند Subgraphs and Connected Components

  • نوع داده انتزاعی گراف ها Graphs Abstract Data Type

  • نمایش گراف ها Graphs Representation

  • نمایش لیست یال Edge List Representation

  • نمایش لیست مجاورت Adjacency List Representation

  • نمایش ماتریس مجاورت Adjacency Matrix Representation

  • نمایش گراف ها - خلاصه عملکرد Graphs Representation - Summary of Performance

  • آزمایشگاه: ADT گراف ها - پیاده سازی Lab: Graphs ADT - Implementation

  • آزمایشگاه: گراف بدون جهت - پیاده سازی Lab: Undirected Graph - Implementation

  • آزمایشگاه: گراف بدون جهت وزن دار - پیاده سازی Lab: Weighted Undirected Graph - Implementation

  • آزمایشگاه: گراف جهت دار - پیاده سازی Lab: Directed Graph - Implementation

  • آزمایشگاه: گراف جهت دار وزن دار - پیاده سازی Lab: Weighted Directed Graph - Implementation

الگوریتم های پیمایش گراف Graph Traversal Algorithms

  • پیمایش گراف ها Graph Traversals

  • جستجوی اول سطح - چگونه کار می کند؟ Breadth First Search - How it Works ?

  • الگوریتم جستجوی اول سطح Breadth First Search Algorithm

  • آزمایشگاه: جستجوی اول سطح - پیاده سازی Lab: Breadth First Search - Implementation

  • جستجوی اول عمق - چگونه کار می کند؟ Depth First Search - How it Works ?

  • الگوریتم جستجوی اول عمق Depth First Search Algorithm

  • آزمایشگاه: جستجوی اول عمق - پیاده سازی Lab: Depth First Search - Implementation

مجموعه ها و مجموعه های مجزا (Disjoint Sets) Sets and Disjoint Sets

  • ساختمان داده مجموعه های مجزا Disjoint Sets Data Structure

  • عملیات و الگوریتم اجتماع (Union) Union Operation & Algorithm

  • عملیات و الگوریتم یافتن (Find) Find Operation & Algorithm

  • عملیات و الگوریتم اجتماع وزن دار (Weighted Union) Weighted Union Operation & Algorithm

  • عملیات و الگوریتم فشردگی یافتن (Collapsing Find) Collapsing Find Operation & Algorithm

  • کاربرد - یافتن تعداد مولفه های همبند Application - Find Number of Connected Components

  • کاربرد - بررسی راس ها در مولفه یکسان Application - Checking Vertices in Same Component

  • کاربرد - تشخیص دور در گراف Application - Detecting Cycle in Graph

  • کاربرد - تعیین اینکه یال به دور منتهی می شود Application - Determine Edge Leads to Cycle

  • کاربرد - محاسبه درخت پوشا Application - Computing Spanning Tree

رویکرد تقسیم و غلبه Divide and Conquer Approach

  • تقسیم و غلبه - مقدمه Divide and Conquer - Introduction

  • انتزاع کنترل برای تقسیم و غلبه Control Abstraction for Divide and Conquer

جستجوی دودویی - تقسیم و غلبه Binary Search - Divide and Conquer

  • جستجوی دودویی - مقدمه Binary Search - Introduction

  • ایده پشت جستجوی دودویی Idea Behind Binary Search

  • جستجوی دودویی چگونه کار می کند How Binary Search Works

  • استراتژی تقسیم و غلبه Divide and Conquer Strategy

  • الگوریتم تکراری جستجوی دودویی Binary Search Iterative Algorithmv

  • تجزیه و تحلیل الگوریتم تکراری جستجوی دودویی Analysis of Iterative Binary Search Algorithm

  • الگوریتم بازگشتی جستجوی دودویی Binary Search Recursive Algorithm

  • تجزیه و تحلیل الگوریتم بازگشتی جستجوی دودویی Analysis of Recursive Binary Search Algorithm

یافتن حداکثر و حداقل - تقسیم و غلبه Finding Maximum and Minimum - Divide and Conquer

  • رویکرد تقسیم و غلبه Divide and Conquer Approach

  • مثال حل شده Solved Example

  • الگوریتم MaxMin MaxMin Algorithm

  • تجزیه و تحلیل الگوریتم MaxMin Analysis of MaxMin Algorithm

  • حل رابطه بازگشتی MaxMin Solving MaxMin Recurrence Relation

  • الگوریتم مستقیم MaxMin Straight MaxMin Algorithm

  • تجزیه و تحلیل الگوریتم مستقیم MaxMin Analysis of Straight MaxMin Algorithm

  • خلاصه Summary

مرتب سازی ادغامی - تقسیم و غلبه Merge Sort - Divide and Conquer

  • ایده پشت مرتب سازی ادغامی Idea behind Merge Sort

  • رویکرد تقسیم و غلبه Divide and Conquer Approach

  • مثال ادغام Merging Example

  • الگوریتم ادغام Merge Algorithm

  • الگوریتم مرتب سازی ادغامی Merge Sort Algorithm

  • نحوه کار الگوریتم مرتب سازی ادغامی Working of Merge Sort Algorithm

  • تجزیه و تحلیل الگوریتم ادغام Analysis of Merge Algorithm

  • تجزیه و تحلیل الگوریتم مرتب سازی ادغامی Analysis of Merge Sort Algorithm

  • خلاصه Summary

مرتب سازی سریع - تقسیم و غلبه Quick Sort - Divide and Conquer

  • ایده پشت مرتب سازی سریع Idea Behind Quick Sort

  • رویکرد تقسیم و غلبه Divide and Conquer Approach

  • درک عنصر محوری (Pivot) Understanding Pivot Element

  • مثال پارتیشن بندی Partition Example

  • الگوریتم پارتیشن بندی Partition Algorithm

  • الگوریتم مرتب سازی سریع Quick Sort Algorithm

  • نحوه کار الگوریتم مرتب سازی سریع Working of Quick Sort Algorithm

  • تجزیه و تحلیل الگوریتم پارتیشن بندی Analysis of Partition Algorithm

  • تجزیه و تحلیل الگوریتم مرتب سازی سریع Analysis of Quick Sort Algorithm

  • خلاصه Summary

الگوریتم انتخاب - تقسیم و غلبه Selection Algorithm - Divide and Conquer

  • ایده پشت الگوریتم انتخاب Idea Behind Selection Algorithm

  • الگوریتم پارتیشن بندی Partition Algorithm

  • انتخاب k امین کوچکترین عنصر Selection of k smallest element

  • الگوریتم انتخاب با مثال Selection Algorithm with Example

  • تجزیه و تحلیل الگوریتم انتخاب Analysis of Selection Algorithm

ضرب ماتریس استراسن - تقسیم و غلبه Strassens Matrix Multiplication - Divide and Conquer

  • مقدمه Introduction

  • الگوریتم و تجزیه و تحلیل فرمول ریاضی Algorithm and Analysis of Mathematical Formula

  • رویکرد تقسیم و غلبه Divide and Conquer Approach

  • تجزیه و تحلیل رویکرد تقسیم و غلبه Analysis of Divide and Conquer Approach

  • رویکرد استراسن Strassen's Approach

  • تجزیه و تحلیل رویکرد استراسن Analysis of Strassen's Approach

  • خلاصه Summary

نزدیکترین جفت - تقسیم و غلبه Closest Pair - Divide and Conquer

  • مقدمه Introduction

  • رویکرد و الگوریتم جستجوی فراگیر Brute Force Approach and Algorithm

  • تجزیه و تحلیل روش جستجوی فراگیر Analysis of Brute Force Method

  • رویکرد تقسیم و غلبه Divide and Conquer Approach

  • الگوریتم نزدیکترین جفت Closest Pair Algorithm

  • تجزیه و تحلیل الگوریتم نزدیکترین جفت Analysis of Closest Pair Algorithm

  • خلاصه Summary

پوشش محدب - تقسیم و غلبه Convex Hull - Divide and Conquer

  • مقدمه پوشش محدب Convex Hull Introduction

  • الگوریتم Quick Hull Quick Hull Algorithm

  • تجزیه و تحلیل الگوریتم Quick Hull Analysis of Quick Hull Algorithm

  • خلاصه الگوریتم Quick Hull Summary of Quick Hull Algorithm

  • اسکن گراهام Graham's Scan

  • الگوریتم اسکن گراهام Graham's Scan Algorithm

  • الگوریتم اسکن Scan Algorithm

  • تجزیه و تحلیل الگوریتم اسکن گراهام Analysis of Graham's Scan Algorithm

  • رویکرد تقسیم و غلبه پوشش محدب Convex Hull Divide and Conquer Approach

  • ادغام پوشش های محدب Merging Convex Hulls

  • تجزیه و تحلیل رویکرد DC پوشش محدب Analysis of Convex Hull DC Approach

روش حریصانه (Greedy Method) Greedy Method

  • روش حریصانه - مقدمه Greedy Method - Introduction

  • روش حریصانه - انتزاع کنترل Greedy Method - Control Abstraction

  • الگوریتم های جستجوی فراگیر و حریصانه Brute-Force and Greedy Algorithms

مسئله کوله پشتی - روش حریصانه Knapsack Problem - Greedy Method

  • مقدمه Introduction

  • انتخاب اشیاء بر اساس کاهش سود Selecting objects according to decreasing Profits

  • انتخاب اشیاء بر اساس افزایش وزن Selecting objects according to increasing Weights

  • انتخاب اشیاء بر اساس کاهش نسبت سود به وزن Selecting objects according to decreasing ratio of Profit by Weight

  • الگوریتم کوله پشتی Knapsack Algorithm

  • تجزیه و تحلیل الگوریتم کوله پشتی Analysis of Knapsack Algorithm

توالی کار با مهلت ها - روش حریصانه Job Sequencing with Deadlines - Greedy Method

  • مقدمه Introduction

  • مثال Example

  • روش حریصانه Greedy Method

  • الگوریتم توالی کار Job Sequencing Algorithm

  • الگوریتم تفصیلی توالی کار Detailed Job Sequencing Algorithm

  • تجزیه و تحلیل الگوریتم JS Analysis of JS Algorithm

درخت های پوشای با کمترین هزینه - روش حریصانه Minimum Cost Spanning Trees - Greedy Method

  • درخت های پوشای با کمترین هزینه Minimum Cost Spanning Trees

  • نحوه کار الگوریتم پریم Working of Prims Algorithm

  • الگوریتم پریم Prims Algorithm

  • تجزیه و تحلیل الگوریتم پریم Analysis of Prims Algorithm

  • نحوه کار الگوریتم کروسکال Working of Kruskals Algorithm

  • الگوریتم کروسکال Kruskals Algorithm

  • تجزیه و تحلیل الگوریتم کروسکال Analysis of Kruskals Algorithm

ذخیره سازی بهینه روی نوارها - روش حریصانه Optimal Storage on Tapes - Greedy Method

  • مقدمه Introduction

  • مثال حل شده Solved Example

  • تجزیه و تحلیل Analysis

الگوهای ادغام بهینه - روش حریصانه Optimal Merge Patterns - Greedy Method

  • مقدمه Introduction

  • مثال حل شده Solved Example

کوتاهترین مسیر تک مبدا - روش حریصانه Single Source Shortest Path - Greedy Method

  • مقدمه Introduction

  • تکنیک Relaxation Relaxation Technique

  • نحوه کار الگوریتم دایجسترا Working of Dijkstra's Algorithm

  • الگوریتم دایجسترا Dijkstra's Algorithm

  • تجزیه و تحلیل الگوریتم دایجسترا Analysis of Dijkstra's Algorithm

برنامه نویسی پویا Dynamic Programming

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

  • برنامه نویسی پویا در مقابل استراتژی تقسیم و غلبه Dynamic Programming Vs Divide and Conquer Strategy

  • برنامه نویسی پویا در مقابل روش حریصانه Dynamic Programming Vs Greedy Method

گراف های چند مرحله ای - برنامه نویسی پویا Multistage Graphs - Dynamic Programming

  • مقدمه Introduction

  • حل مسئله گراف چند مرحله ای Solving Multistage Graph Problem

  • الگوریتم گراف چند مرحله ای Multistage Graph Algorithm

  • تجزیه و تحلیل الگوریتم رویکرد رو به جلو گراف چند مرحله ای Analysis of Multistage Graph Forward Approach Algorithm

  • مقدمه رویکرد رو به عقب Backward Approach Introduction

  • حل گراف چند مرحله ای به صورت رو به عقب Solving Multistage Graph Barkward

  • الگوریتم گراف چند مرحله ای رویکرد رو به عقب Multistage Graph Algorithm Backward Approach

  • تجزیه و تحلیل الگوریتم رویکرد رو به عقب گراف چند مرحله ای Analysis of Multistage Graph Backward Approach Algorithm

کوتاهترین مسیر تمام جفت ها - برنامه نویسی پویا All Pairs Shortest Path - Dynamic Programming

  • مقدمه Introduction

  • حل کوتاهترین مسیر تمام جفت ها Solving All Pairs Shortest Path

  • الگوریتم کوتاهترین مسیر تمام جفت ها All Pairs Shortest Path Algorithm

  • تجزیه و تحلیل الگوریتم کوتاهترین مسیر تمام جفت ها Analysis of All Pairs Shortest Path Algorithm

کوتاهترین مسیرهای تک مبدا - برنامه نویسی پویا Single Source Shortest Paths - Dynamic Programming

  • مقدمه Introduction

  • حل کوتاهترین مسیر تک مبدا Solving Single Source Shortest Path

  • الگوریتم بلمن-فورد BellmenFord Algorithm

  • تجزیه و تحلیل الگوریتم بلمن-فورد Analysis of Bellmen Ford Algorithm

درخت های جستجوی دودویی بهینه - برنامه نویسی پویا Optimal Binary Search Trees - Dynamic Programming

  • مقدمه Introduction

  • احتمالات جستجوی موفق و ناموفق Probabilities of Successful & Unsuccessful Search

  • Solving with equal Probabilities

  • حل با احتمالات متفاوت Solving with different Probabilities

  • استخراج فرمول برنامه نویسی پویا Deriving Dynamic Programming Formula

  • مثال حل شده با استفاده از برنامه نویسی پویا Solved Example using Dynamic Programming

  • الگوریتم OBST OBST Algorithm

  • تجزیه و تحلیل الگوریتم OBST Analysis of OBST Algorithm

0/1 مسئله کوله پشتی - برنامه نویسی پویا 0/1 Knapsack Problem - Dynamic Programming

  • مقدمه Introduction

  • مثال حل شده Solved Example

  • خلاصه Summary

طراحی قابلیت اطمینان - برنامه نویسی پویا Reliability Design - Dynamic Programming

  • مقدمه Introduction

  • مثال حل شده Solved Example

  • تحلیل Analysis

مسئله فروشنده دوره گرد - برنامه نویسی پویا Traveling Salesperson Problem - Dynamic Programming

  • مقدمه Introduction

  • مثال حل شده Solved Example

  • تحلیل Analysis

پس گرد (Backtracking) Backtracking

  • پس گرد (Backtracking) – مقدمه Backtracking - Introduction

مسئله n وزیر - پس گرد (Backtracking) n-Queens Problem - Backtracking

  • مقدمه Introduction

  • مثال حل شده Solved Example

  • الگوریتم و تحلیل Algorithm and Analysis

مجموع زیرمجموعه‌ها - پس گرد (Backtracking) Sum of Subsets - Backtracking

  • مقدمه Introduction

  • مثال حل شده Solved Example

  • الگوریتم و تحلیل Algorithm and Analysis

رنگ‌آمیزی گراف - پس گرد (Backtracking) Graph Coloring - Backtracking

  • مقدمه Introduction

  • مثال حل شده Solved Example

  • الگوریتم و تحلیل Algorithm and Analysis

دورهای همیلتونی - پس گرد (Backtracking) Hamiltonian Cycles - Backtracking

  • مقدمه Introduction

  • مثال حل شده Solved Example

  • الگوریتم و تحلیل Algorithm and Analysis

0/1 مسئله کوله پشتی - پس گرد (Backtracking) 0/1 Knapsack Problem - Backtracking

  • مقدمه Introduction

  • مثال حل شده Solved Example

  • الگوریتم و تحلیل Algorithm and Analysis

انشعاب و تحدید (Branch and Bound) Branch and Bound

  • مقدمه انشعاب و تحدید (Branch and Bound) Branch and Bound Introduction

  • تجرید کنترل برای انشعاب و تحدید (LC Branch and Bound) Control Abstraction for LC Branch and Bound

n وزیر - انشعاب و تحدید (Branch and Bound) n-Queens - Branch and Bound

  • مقدمه Introduction

  • مثال حل شده Solved Example

ترتیب‌بندی شغل - انشعاب و تحدید (Branch and Bound) Job Sequencing - Branch and Bound

  • ترتیب‌بندی شغل FIFO انشعاب و تحدید (Branch and Bound) Job Sequencing FIFO Branch and Bound

  • ترتیب‌بندی شغل LC انشعاب و تحدید (Branch and Bound) Job Sequencing LC Branch and Bound

0/1 مسئله کوله پشتی - انشعاب و تحدید (Branch and Bound) 0/1 Knapsack Problem - Branch and Bound

  • 0/1 کوله پشتی FIFO انشعاب و تحدید (Branch and Bound) 0/1 Knapsack FIFO Branch and Bound

  • 0/1 کوله پشتی LC انشعاب و تحدید (Branch and Bound) 0/1 Knapsack LC Branch and Bound

نمایش نظرات

ساختارهای داده و الگوریتم‌ها: آموزش عمیق DSA با استفاده از جاوا
جزییات دوره
46.5 hours
398
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
609
4.4 از 5
دارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar