آموزش الگوریتم ها (ساختارهای داده) بوت کمپ در C++

Algorithms (Data Structures) Bootcamp in C++

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: الگوریتم‌های بازگشتی، پس‌گرد، برنامه‌نویسی پویا، نمودارها، ساختارهای داده، مرتب‌سازی و جستجوی زیر رشته‌ای الگوریتم‌های بازگشتی و حافظه پشته‌ای را درک برنامه‌ریزی پویا درک ساختارهای داده اساسی آرایه‌ها و لیست‌های پیوندی را درک پشته‌ها و صف‌ها انواع داده انتزاعی ساختارهای داده درختی (دودویی) درخت‌ها و پشته‌های جستجو را درک می‌کند و ساختارهای داده مبتنی بر هش مانند جداول هش را می‌فهمد الگوریتم‌های نموداری را درک می‌کنند که جستجوی وسعت و جستجوی اول عمق کوتاه‌ترین مشکل را درک می‌کنند (الگوریتم دایکسترا و بلمن-فورد) الگوریتم‌های جستجوی زیر رشته‌ای را درک می‌کنند (رابین-کارپ) الگوریتم‌های Knuth-Morris-Pratt و Z) الگوریتم‌های مرتب‌سازی را درک می‌کنند.

این دوره برای کسانی است که به علوم کامپیوتر علاقه مند هستند و می خواهند الگوریتم ها و ساختار داده های داده شده را در C++ از ابتدا پیاده سازی کنند. در هر فصل با تئوری یک ساختار داده یا الگوریتم داده شده آشنا خواهید شد و سپس آنها را از ابتدا پیاده سازی خواهید کرد.

فصل 1: بازگشت

  • نظریه پشت بازگشت (تعداد فراخوانی تابع بازگشتی)

  • پشته حافظه و حافظه پشته

  • بازگشت و پشته حافظه سیستم عامل

  • مشکلات بازگشتی مانند مشکل برج هانوی

فصل 2: ​​عقبگرد

  • چه چیزی عقب نشینی می کند

  • نحوه حل مشکلات مربوط به عقبگرد

  • مشکل N-queens

  • مشکل رنگ آمیزی

  • تور شوالیه

فصل 3: برنامه نویسی پویا

  • مشکل های فرعی همپوشانی و برنامه نویسی پویا

  • "یادداشت" و "جدول بندی" چیست؟

  • اعداد فیبوناچی

  • مشکل کوله پشتی

فصل 4: ساختارهای داده

  • ساختارهای داده و انواع داده های انتزاعی (ADT)

  • آرایه ها

  • لیست‌های مرتبط

  • پشته ها

  • صف ها

  • درخت جستجوی دودویی

  • صف های اولویت دار (انبوه)

  • آرایه های انجمنی (جدول هش)

فصل 5: نمودارها

  • نمودارهای جهت دار و بدون جهت

  • پیمایش نمودار: جستجوی عرضی و جستجوی اولی در عمق

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

  • الگوریتم Dijkstra

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

فصل 6: الگوریتم های جستجوی زیر رشته ای

  • مرتبط ترین الگوریتم های جستجوی زیر رشته ای

  • جستجوی ساده زیر رشته

  • الگوریتم جستجوی زیر رشته ای Knut-Morris-Pratt (KMP)

  • الگوریتم رابین-کارپ

  • الگوریتم Z (تطبیق الگوی خطی)

فصل 7: مرتب سازی

  • مرتب‌سازی پایدار و مرتب‌سازی تطبیقی

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

  • مرتب‌سازی رشته‌ها

  • مرتب‌سازی حبابی

  • مرتب‌سازی انتخابی و مرتب‌سازی درج

  • مرتب‌سازی سریع

  • مرتب سازی ادغام

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

اینها موضوعاتی هستند که ما به صورت تک به تک بررسی می کنیم. بعد از هر موضوع یک بخش Q A وجود دارد که می توانید دانش خود را در مورد موضوعات داده شده آزمایش کنید. از اینکه به دوره من پیوستید متشکریم، بیایید شروع کنیم!


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

معرفی Introduction

  • معرفی Introduction

الگوریتم ها - بازگشتی Algorithms - Recursion

  • حافظه پشته و پشته چیست؟ What are stack and heap memory?

  • پشته حافظه و شبیه سازی حافظه پشته Stack memory and heap memory simulation

  • آزمون پشته حافظه و حافظه Heap Stack Memory and Heap Memory Quiz

  • بازگشت ( فراخوانی تابع بازگشتی) چیست؟ What is recursion (recursive function call)?

  • اجرای بازگشت سر و دم Head and tail recursion implementation

  • حافظه بازگشتی و پشته ای (سرریز پشته) Recursion and stack memory (stack overflow)

  • آزمون بازگشت Recursion Quiz

  • مشکل فاکتوریل Factorial problem

  • مشکل اعداد فیبوناچی Fibonacci numbers problem

  • اعداد فیبوناچی - تجسم حافظه پشته Fibonacci numbers - visualizing the stack memory

  • اعداد فیبوناچی با بازگشت دم Fibonacci-numbers with tail recursion

  • معرفی برج های هانوی Towers of Hanoi introduction

  • اجرای برج هانوی Towers of Hanoi implementation

  • برج های هانوی - تجسم پشته Towers of Hanoi - visualizing the stack

  • بازگشت و تکرار (تفاوتها) Recursion and iteration (differences)

  • آزمون مشکلات بازگشتی Recursive Problems Quiz

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

  • جستجوی خطی چیست؟ What is linear search?

  • اجرای جستجوی خطی Linear search implementation

  • جستجوی دودویی (لگاریتمی) چیست؟ What is binary (logarithmic) search?

  • اجرای جستجوی باینری Binary search implementation

  • آزمون الگوریتم های جستجو Search Algorithms Quiz

الگوریتم ها - عقبگرد Algorithms - Backtracking

  • عقب نشینی چیست؟ What is backtracking?

  • جستجوی بی رحمانه و عقب نشینی Brute-force search and backtracking

  • آزمون عقبگرد Backtracking Quiz

  • معرفی مسئله N-queens N-queens problem introduction

  • اجرای مسئله N-queens N-queens problem implementation

  • مشکل N-queens و حافظه پشته N-queens problem and the stack memory

  • معرفی مشکل رنگ آمیزی Coloring problem introduction

  • تجسم مشکل رنگ آمیزی Coloring problem visualization

  • اجرای مشکل رنگ آمیزی Coloring problem implementation

  • معرفی مشکل تور نایت Knight's tour problem introduction

  • اجرای مشکل تور نایت Knight's tour problem implementation

  • مشکل عقب نشینی چیست؟ What is the problem with backtracking?

  • امتحان مشکلات عقبگرد Backtracking Problems Quiz

الگوریتم ها - برنامه نویسی پویا Algorithms - Dynamic Programming

  • برنامه نویسی پویا چیست؟ What is dynamic programming?

  • آزمون برنامه نویسی پویا Dynamic Programming Quiz

  • معرفی اعداد فیبوناچی Fibonacci numbers introduction

  • پیاده سازی اعداد فیبوناچی Fibonacci numbers implementation

  • معرفی مشکل کوله پشتی Knapsack problem introduction

  • مثال مشکل کوله پشتی Knapsack problem example

  • اجرای مشکل کوله پشتی Knapsack problem implementation

  • آزمون نهایی برنامه نویسی پویا Dynamic Programming Final Quiz

نمای کلی ساختارهای داده و انواع داده های انتزاعی Data Structures and Abstract Data Types Overview

  • چرا به ساختارهای داده نیاز داریم؟ Why do we need data structures?

  • ساختار داده ها و انواع داده های انتزاعی Data structures and abstract data types

ساختارهای داده - آرایه ها Data Structures - Arrays

  • ساختارهای داده آرایه چیست؟ What are array data structures?

  • معرفی آرایه ها - عملیات Arrays introduction - operations

  • آرایه ها در C++ Arrays in C++

  • آزمون آرایه ها Arrays Quiz

ساختارهای داده - لیست های پیوندی Data Structures - Linked Lists

  • لیست های پیوندی چیست؟ What are linked lists?

  • تئوری لیست پیوندی - عملیات Linked list theory - operations

  • پیاده سازی لیست پیوندی Linked list implementation

  • مقایسه لیست ها و آرایه های مرتبط Comparing linked lists and arrays

  • کاربردهای عملی (در دنیای واقعی) لیست های پیوندی Practical (real-world) applications of linked lists

  • مسابقه لیست های پیوندی Linked Lists Quiz

ساختارهای داده - پشته ها Data Structures - Stacks

  • پشته ها چیست؟ What are stacks?

  • پشته ها در مدیریت حافظه (پشته ها و پشته ها) Stacks in memory management (stacks and heaps)

  • تجسم حافظه پشته Stack memory visualization

  • اجرای پشته با آرایه ها Stacks implementation with arrays

  • اجرای پشته با لیست های پیوندی Stack implementation with linked lists

  • کاربردهای عملی (در دنیای واقعی) پشته ها Practical (real-world) applications of stacks

  • مسابقه پشته Stack Quiz

ساختارهای داده - صف Data Structures - Queues

  • صف ها چیست؟ What are queues?

  • اجرای صف با لیست پیوندی Queue implementation with linked list

  • مسابقه صف Queues Quiz

ساختارهای داده - درختان Data Structures - Trees

  • نظریه درختان جستجوی دودویی - مبانی Binary search trees theory - basics

  • نظریه درختان جستجوی دودویی - جستجو، درج Binary search trees theory - search, insert

  • نظریه درختان جستجوی دودویی - حذف Binary search trees theory - delete

  • نظریه درختان جستجوی دودویی - پیمایش به ترتیب Binary search trees theory - in-order traversal

  • نظریه درختان جستجوی دودویی - زمان اجرا Binary search trees theory - running times

  • پیاده سازی درخت جستجوی باینری I Binary search tree implementation I

  • تجسم حافظه پشته - یافتن حداکثر (دقیقه) موارد Stack memory visualization - finding max (min) items

  • تجسم حافظه پشته - پیمایش درخت Stack memory visualization - tree traversal

  • اجرای درخت جستجوی باینری II Binary search tree implementation II

  • اجرای درخت جستجوی باینری III Binary search tree implementation III

  • کاربردهای عملی (در دنیای واقعی) درختان Practical (real-world) applications of trees

  • مسابقه درخت جستجوی دودویی Binary Search Tree Quiz

صف های اولویت دار (هپ) Priority Queues (Heaps)

  • صف های اولویت دار چیست؟ What are priority queues?

  • مقدمه هیپ - مبانی Heap introduction - basics

  • معرفی هیپ - نمایش آرایه Heap introduction - array representation

  • معرفی Heap - عملیات حذف Heap introduction - remove operation

  • استفاده از ساختار داده های پشته برای مرتب سازی (Heapsort) Using heap data structure to sort (heapsort)

  • معرفی هیپ - زمان اجرا Heap introduction - running times

  • پشته های دوجمله ای و فیبوناچی Binomial and Fibonacci heaps

  • اجرای Heaps I Heaps implementation I

  • اجرای Heaps II Heaps implementation II

  • Heaps Quiz Heaps Quiz

B-درختان B-Trees

  • حافظه خارجی چیست؟ What is external memory?

  • زمان دسترسی به دیسک Disk access times

  • B-trees چیست؟ What are B-trees?

  • B-tree معرفی - درج B-tree introduction - insertion

  • B-tree معرفی - حذف B-tree introduction - deletion

  • انواع B-tree و سیستم های فایل B-tree variants and file systems

  • مسابقه B-Tree B-Tree Quiz

آرایه های انجمنی (HashTables) Associative Arrays (HashTables)

  • آرایه های انجمنی چیست؟ What are associative arrays?

  • مقدمه Hashtables - مبانی Hashtables introduction - basics

  • معرفی Hashtables - برخورد Hashtables introduction - collisions

  • معرفی Hashtables - ضریب بار و تغییر اندازه پویا Hashtables introduction - load factor & dynamic resizing

  • روش زنجیر زنی Chaining method

  • پیاده سازی روش زنجیره ای Chaining method implementation

  • کاربردهای عملی (در دنیای واقعی) هش کردن Practical (real-world) applications of hashing

  • آزمون آرایه های انجمنی Associative Arrays Quiz

الگوریتم های نمودار - بررسی اجمالی Graph Algorithms - Overview

  • مروری بر نظریه گراف Graph theory overview

  • ماتریس مجاورت و فهرست مجاورت Adjacency matrix and adjacency list

  • کاربردهای نمودارها Applications of graphs

  • آزمون بررسی اجمالی الگوریتم های نمودار Graph Algorithms Overview Quiz

الگوریتم‌های نمودار - جستجوی اول عرض (BFS) Graph Algorithms - Breadth-First Search (BFS)

  • مقدمه جستجوی پهنا Breadth-first search introduction

  • اجرای جستجوی پهنا Breadth-first search implementation

  • WebCrawler (هسته موتورهای جستجو) WebCrawler (core of search engines)

الگوریتم‌های نمودار - جستجوی عمقی (DFS) Graph Algorithms - Depth-First Search (DFS)

  • مقدمه جستجوی عمق Depth-first search introduction

  • اجرای جستجوی عمقی Depth-first search implementation

  • جستجوی عمقی و تجسم حافظه پشته Depth-first search and stack memory visualisation

  • مدیریت حافظه: BFS در مقابل DFS Memory management: BFS vs DFS

  • آزمون پیمایش نمودار Graph Traversal Quiz

الگوریتم‌های نمودار - الگوریتم کوتاه‌ترین مسیر Dijkstra Graph Algorithms - Dijkstra's Shortest Path Algorithm

  • مشکل کوتاه ترین مسیر چیست؟ What is the shortest path problem?

  • تجسم الگوریتم Dijkstra Dijkstra algorithm visualization

  • پیاده سازی الگوریتم Dijkstra I Dijkstra algorithm implementation I

  • اجرای الگوریتم Dijkstra II Dijkstra algorithm implementation II

  • برنامه های کاربردی الگوریتم های کوتاه ترین مسیر Shortest path algorithms applications

  • روش مسیر بحرانی (CPM) چیست؟ What is the critical path method (CPM)?

  • آزمون الگوریتم دایکسترا Dijkstra's Algorithm Quiz

الگوریتم های نمودار - الگوریتم بلمن-فورد Graph Algorithms - Bellman-Ford Algorithm

  • الگوریتم بلمن فورد چیست؟ What is the Bellman-Ford algorithm?

  • تجسم الگوریتم بلمن-فورد Bellman-Ford algorithm visualisation

  • پیاده سازی الگوریتم بلمن-فورد I Bellman-Ford algorithm implementation I

  • اجرای الگوریتم بلمن-فورد II Bellman-Ford algorithm implementation II

  • الگوریتم حریصانه یا رویکرد برنامه نویسی پویا؟ Greedy algorithm or dynamic programming approach?

  • آزمون الگوریتم بلمن-فورد Bellman-Ford Algorithm Quiz

الگوریتم های جستجوی زیر رشته ای Substring Search Algorithms

  • مقدمه جستجوی Brute-Force Brute-force search introduction

  • اجرای جستجوی Brute-Force Brute-force search implementation

  • آزمون جستجوی ساده زیر رشته ای Naive Substring Search Quiz

  • معرفی الگوریتم رابین-کارپ Rabin-Karp algorithm introduction

  • آزمون الگوریتم رابین-کارپ Rabin-Karp Algorithm Quiz

  • معرفی الگوریتم Knuth-Morris-Pratt Knuth-Morris-Pratt algorithm introduction

  • ساخت جدول مسابقه جزئی Constructing the partial match table

  • اجرای الگوریتم Knuth-Morris-Pratt Knuth-Morris-Pratt algorithm implementation

  • آزمون الگوریتم Knuth-Morris-Pratt Knuth-Morris-Pratt Algorithm Quiz

  • معرفی الگوریتم Z Z algorithm introduction

  • تصویر الگوریتم Z Z algorithm illustration

  • پیاده سازی الگوریتم Z Z algorithm implementation

  • آزمون الگوریتم Z Z Algorithm Quiz

  • مقایسه الگوریتم های جستجوی زیر رشته ای Substring search algorithms comparison

  • کاربردهای جستجوی زیر رشته ای Applications of substring search

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

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

  • ثبات در مرتب سازی چیست؟ What is stability in sorting?

  • الگوریتم های مرتب سازی تطبیقی Adaptive sorting algorithms

  • آزمون اصول مرتب سازی الگوریتم ها Sorting Algorithms Basics Quiz

  • معرفی مرتب سازی بوگو Bogo sort introduction

  • اجرای مرتب سازی بوگو Bogo sort implementation

  • مسابقه مرتب سازی بوگو Bogo Sort Quiz

  • مقدمه مرتب سازی حبابی Bubble sort introduction

  • اجرای مرتب سازی حبابی Bubble sort implementation

  • مقدمه مرتب سازی انتخابی Selection sort introduction

  • اجرای مرتب سازی انتخاب Selection sort implementation

  • مسابقه مرتب سازی انتخاب Selection Sort Quiz

  • مقدمه مرتب سازی درج Insertion sort introduction

  • پیاده سازی مرتب سازی درج Insertion sort implementation

  • مسابقه مرتب سازی درج Insertion Sort Quiz

  • معرفی مرتب سازی پوسته Shell sort introduction

  • اجرای مرتب سازی پوسته Shell sort implementation

  • مسابقه مرتب سازی پوسته Shell Sort Quiz

  • مقدمه مرتب سازی سریع Quicksort introduction

  • مقدمه مرتب سازی سریع - مثال Quicksort introduction - example

  • اجرای مرتب سازی سریع Quicksort implementation

  • پارتیشن بندی Hoare و پارتیشن بندی Lomuto Hoare's partitioning and Lomuto's partitioning

  • بدترین سناریو برای مرتب سازی سریع چیست؟ What is the worst-case scenario for quicksort?

  • QuickSort Quiz QuickSort Quiz

  • مقدمه مرتب سازی ادغام Merge sort introduction

  • اجرای مرتب سازی ادغام Merge sort implementation

  • ادغام مرتب سازی و تجسم حافظه پشته Merge sort and stack memory visualization

  • مسابقه مرتب سازی ادغام Merge Sort Quiz

  • معرفی الگوریتم های ترکیبی Hybrid algorithms introduction

  • الگوریتم های غیرمقایسه ای Non-comparison based algorithms

  • معرفی مرتب سازی شمارش Counting sort introduction

  • اجرای مرتب سازی شمارش Counting sort implementation

  • مقدمه مرتب سازی رادیکس Radix sort introduction

  • پیاده سازی مرتب سازی رادیکس Radix sort implementation

  • امتحان مرتب‌سازی غیرمقایسه‌ای Non-Comparison Based Sorting Quiz

برنامه تصویرسازی الگوریتم رایگان Algorhyme FREE Algorithms Visualizer App

  • برنامه تجسم الگوریتم ها Algorithms Visualization App

  • الگوریتم - الگوریتم ها و ساختارهای داده Algorhyme - Algorithms and Data Structures

دانلود (مواد درسی) DOWNLOADS (Course Materials)

  • مواد درسی Course materials

  • کد منبع الگوریتم های مرتب سازی Sorting algorithms source code

نمایش نظرات

آموزش الگوریتم ها (ساختارهای داده) بوت کمپ در C++
جزییات دوره
17.5 hours
149
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
9,853
4.8 از 5
دارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Holczer Balazs Holczer Balazs

مهندس نرم افزار