آموزش الگوریتم ها (ساختارهای داده) بوت کمپ در 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++
خرید اشتراک و دانلود خرید تکی و دانلود | 160,000 تومان (5 روز مهلت دانلود) زمان تقریبی آماده سازی لینک دانلود این دوره آموزشی حدود 5 تا 24 ساعت می باشد.
جزییات دوره
17.5 hours
149
Udemy (یودمی) udemy-small
04 بهمن 1401 (آخرین آپدیت رو دریافت می‌کنید، حتی اگر این تاریخ بروز نباشد.)
9,853
4.8 از 5
دارد
دارد
دارد

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Holczer Balazs Holczer Balazs

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

Udemy (یودمی)

یودمی یکی از بزرگ‌ترین پلتفرم‌های آموزشی آنلاین است که به میلیون‌ها کاربر در سراسر جهان امکان دسترسی به دوره‌های متنوع و کاربردی را فراهم می‌کند. این پلتفرم امکان آموزش در زمینه‌های مختلف از فناوری اطلاعات و برنامه‌نویسی گرفته تا زبان‌های خارجی، مدیریت، و هنر را به کاربران ارائه می‌دهد. با استفاده از یودمی، کاربران می‌توانند به صورت انعطاف‌پذیر و بهینه، مهارت‌های جدیدی را یاد بگیرند و خود را برای بازار کار آماده کنند.

یکی از ویژگی‌های برجسته یودمی، کیفیت بالای دوره‌ها و حضور استادان مجرب و با تجربه در هر حوزه است. این امر به کاربران اعتماد می‌دهد که در حال دریافت آموزش از منابع قابل اعتماد و معتبر هستند و می‌توانند به بهترین شکل ممکن از آموزش‌ها بهره ببرند. به طور خلاصه، یودمی به عنوان یکی از معتبرترین و موثرترین پلتفرم‌های آموزشی آنلاین، به افراد امکان می‌دهد تا به راحتی و با کیفیت، مهارت‌های مورد نیاز خود را ارتقا دهند و به دنبال رشد و پیشرفت شغلی خود باشند.