آموزش الگوریتم ها در جاوا اسکریپت: تکنیک های طراحی

Algorithms in JavaScript : Design techniques

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

تکنیک های طراحی الگوریتم: حل مسئله زنده در جاوا اسکریپت


الگوریتم ها همه جا هستند! یک الگوریتم عالی که به طور معقول اعمال شود می تواند به سیستمی مانند GOOGLE منجر شود!


لری پیج، بنیانگذار گوگل، الگوریتم "Page Rank" را طراحی کرد که پشت سر جستجو در گوگل قرار دارد. به همین دلیل است که وقتی در گوگل جستجو می کنیم، به طور کلی مرتبط ترین نتیجه را در خود صفحه اول پیدا می کنیم.


هر برنامه نویس کامپیوتری باید یاد بگیرد که چگونه الگوریتم هایی را طراحی کند که نه تنها درست هستند، بلکه از نظر

نیز کارآمد هستند.


زمان و مکان!


دانشمندان کامل‌تر از 100 سال پیش کار کرده‌اند!! - (تصاویر برخی از دانشمندان را قرار دهید...)


و برخی از تکنیک‌هایی را که می‌توان برای نوشتن و طراحی الگوریتم‌ها به کار برد، استخراج کرد!


پس چرا چرخ را دوباره اختراع کنیم؟


بیایید برخی از معروف ترین تکنیک های طراحی الگوریتم در این دوره را مرور کنیم!!


وقتی با این تکنیک‌های طراحی آشنا شدید، با شناسایی اینکه کدام تکنیک را برای حل صحیح و کارآمد آن باید به کار ببرید، به مشکل نزدیک می‌شوید.


این دوره را با چند تکنیک اندازه گیری در الگوریتم ها شروع می کنیم که به آن تحلیل پیچیدگی می گویند تا بتوانیم اندازه گیری کنیم -


زمان و مکان در یک الگوریتم زمانی که آن را طراحی می کنیم.


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


بازگشت پایه هر طراحی الگوریتم است ... زیرا بیشتر الگوریتم ها باید با استفاده از بازگشت حل شوند!


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


انواع بسیاری از بازگشت وجود دارد و ما نگاهی به آن خواهیم داشت.


ما برخی از مسائل کلاسیک مانند برج هانوی، زیردرخت باینری را حل خواهیم کرد تا بازگشت عمیق را درک کنیم...


و ما کد را خط به خط در جاوا خواهیم نوشت!! برای اینکه درک و کدنویسی آن بسیار آسان شود…


سپس ما به سراغ تکنیک طراحی دیگری می رویم که به عقب برگردیم!!


الگوریتم‌های عقب‌گرد، بازگشتی بهبودیافته هستند که می‌توانیم تصمیم خود را از داخل یک بازگشت بازگردانیم…


ما نحوه شناسایی و برخورد با این نوع مشکلات را خواهیم فهمید..


همچنین، برخی از مشکلات کلاسیک را حل خواهیم کرد


مشکلات Rat In Maze، NQueens، KnightsTour… و آنها را خط به خط کدنویسی کنید…


سپس، ما به بخش بعدی

خواهیم رفت


تقسیم کن و غلبه کن... الگوریتم های حریص


و همین رویکرد را در پیش خواهد گرفت!! برای درک شناسایی و حل برخی مشکلات… و کدنویسی برخی از مشکلات کلاسیک.


سپس یک بخش بسیار مهم وجود خواهد داشت! برنامه نویسی پویا


این نه تنها برای طراحی الگوریتم‌ها بلکه برای مصاحبه‌ها نیز مهم است


این یک الگوی بسیار مورد علاقه برای مصاحبه کننده است که از آن سؤال بپرسد - ما بسیاری از مشکلات را در بخش به همراه کد حل خواهیم کرد ... و درک خواهیم کرد که چگونه به این نوع مشکل نزدیک شویم!


در مجموع!


تا پایان این دوره -


1. نحوه طراحی الگوریتم

را خواهید فهمید

2. بسیاری از تمرین های کدنویسی و مشکلات طراحی زنده در جاوا

3. تحلیل پیچیدگی الگوریتم

و

اگر برای مصاحبه برنامه نویسی خود آماده می شوید یا برنامه نویسی رقابتی انجام می دهید


این دوره کمک بزرگی برای شما خواهد بود!


من فکر می کنم این برای ایجاد هیجان کافی است!! من شما را به این دوره خوش آمد می گویم و مطمئن هستم که این سرگرم کننده خواهد بود!


اگر اینطور نیست - با 30 روز ضمانت بازگشت وجه ارائه می‌شود، پس دوبار فکر نکنید…


دوباره خوش آمدید!! و شما را در دوره می بینم.


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

معرفی دوره Course Introduction

  • معرفی Introduction

  • منابع دوره Course Resources

مقدمه ای بر الگوریتم ها Introduction To Algorithms

  • مقدمه ای بر الگوریتم ها Introduction to Algorithms

تحلیل پیچیدگی Complexity Analysis

  • بخش مقدمه Section Introduction

  • تحلیل پیچیدگی 1 Complexity Analysis 1

  • تجزیه و تحلیل پیچیدگی 2 Complexity Analysis 2

  • خلاصه بخش Section Summary

رابطه عود Recurrence Relation

  • بخش مقدمه Section Introduction

  • رابطه عود Recurrence Relation

  • حل رابطه عود Solving Recurrence Relation

  • قضیه کارشناسی ارشد Master's Theorem

  • خلاصه بخش Section Summary

تفکر بازگشتی Thinking Recursively

  • بخش مقدمه Section Introduction

  • بازگشت Recursion

  • شناسایی Identification

  • نزدیک شدن Approaching

  • مشکل 01: FindingSubstrings - Logic Problem 01 : FindingSubstrings - Logic

  • مشکل 01: FindingSubstrings - کد زنده جاوا اسکریپت Problem 01 : FindingSubstrings - Live Code JavaScript

  • مسئله 01: FindingSubstrings - تجزیه و تحلیل پیچیدگی Problem 01 : FindingSubstrings - Complexity Analysis

  • مشکل 02: برج هانوی - منطق Problem 02 : Tower of Hanoi - Logic

  • مشکل 02: برج هانوی - کد زنده جاوا اسکریپت Problem 02 : Tower of Hanoi - Live Code JavaScript

  • مسئله 02: برج هانوی - تجزیه و تحلیل پیچیدگی Problem 02 : Tower of Hanoi - Complexity Analysis

  • مسئله 03: مجموع محصول آرایه - منطق Problem 03 : Array Product Sum - Logic

  • مشکل 03: مجموع محصول آرایه - کد زنده جاوا اسکریپت Problem 03 : Array Product Sum - Live Code JavaScript

  • مسئله 03: مجموع محصول آرایه - تجزیه و تحلیل پیچیدگی Problem 03 : Array Product Sum - Complexity Analysis

  • مشکل 04: زیردرخت باینری - منطق Problem 04 : Binary Subtree - Logic

  • مشکل 04: زیردرخت باینری: کد زنده Problem 04 : Binary Subtree : Live code

  • مسئله 04: زیردرخت باینری - تحلیل پیچیدگی Problem 04 : Binary Subtree - Complexity Analysis

  • چرا و چرا نه بازگشت Why and Why not Recursion

  • انواع بازگشت Types Of Recursion

  • بازگشت دم Tail Recursion

  • خلاصه Summary

عقب نشینی Backtracking

  • بخش مقدمه Section Introduction

  • مقدمه ای بر Backtracking Introduction to Backtracking

  • شناسایی Identification

  • نزدیک شدن به راه حل Approaching The Solution

  • مشکل 01: موش در پیچ و خم - منطق Problem 01 : Rat In Maze - Logic

  • مشکل 01: موش در پیچ و خم - کد Problem 01 : Rat In Maze - Code

  • مسئله 01: موش در پیچ و خم - تجزیه و تحلیل پیچیدگی Problem 01 : Rat In Maze - Complexity Analysis

  • مشکل 02: N-Queens - منطق Problem 02 : N-Queens - Logic

  • مشکل 02: N-Queens - کد زنده در جاوا اسکریپت Problem 02 : N-Queens - Live Code in Javascript

  • مسئله 02: NQueen - تحلیل پیچیدگی Problem 02 : NQueen - Complexity Analysis

  • مشکل 03: مشکل تور شوالیه - منطق Problem 03 : Knight Tour Problem - Logic

  • مشکل 03: مشکل تور نایت - کد زنده در جاوا اسکریپت Problem 03 : Knight's Tour Problem - Live Code in Javascript

  • مسئله 03: مسئله تور شوالیه - تحلیل پیچیدگی Problem 03 : Knight Tour Problem - Complexity Analysis

  • مشکل 04 : Boggle | جستجوی کلمه - منطق Problem 04 : Boggle | Word Search - Logic

  • مشکل 04 : Boggle | جستجوی کلمه - کد زنده در جاوا اسکریپت Problem 04 : Boggle | Word Search - Live Code in Javascript

  • مشکل 04 : Boggle | جستجوی کلمات - تحلیل پیچیدگی Problem 04 : Boggle | Word Search - Complexity Analysis

  • خلاصه بخش Section Summary

تفرقه بینداز و حکومت کن Divide and Conquer

  • بخش مقدمه Section Introduction

  • مقدمه ای برای تقسیم و تسخیر Introduction To Divide And Conquer

  • شناسایی و نزدیک شدن Identification and Approaching

  • مشکل 01: MergeSort - Logic Problem 01 : MergeSort - Logic

  • مشکل 01: MergeSort - کد جاوا اسکریپت زنده Problem 01 : MergeSort - Live Javascript Code

  • مشکل 01: MergeSort - تجزیه و تحلیل پیچیدگی Problem 01 : MergeSort - Complexity Analysis

  • مشکل 02: QuickSort - Logic Problem 02 : QuickSort - Logic

  • مشکل 02: QuickSort - کد جاوا اسکریپت زنده Problem 02 : QuickSort - Live Javascript Code

  • مشکل 02: QuickSort - تجزیه و تحلیل پیچیدگی Problem 02 : QuickSort - Complexity Analysis

  • مسئله 03: میانه مدیان - منطق Problem 03 : Median Of Medians - Logic

  • مشکل 03: Median Of Medians - کد جاوا اسکریپت زنده Problem 03 : Median Of Medians - Live Javascript Code

  • خلاصه بخش Section Summary

تکنیک حریص Greedy Technique

  • بخش مقدمه Section Introduction

  • مقدمه ای بر حریص Introduction to Greedy

  • شناسایی و نزدیک شدن به راه حل Identification & Approaching the Solution

  • مسئله 01: کوله پشتی کسری - منطق Problem 01 : Fractional Knapsack - Logic

  • مشکل 01: کوله پشتی کسری - کد زنده جاوا اسکریپت Problem 01 : Fractional Knapsack - Live Code Javascript

  • مسئله 01: کوله پشتی کسری - تحلیل پیچیدگی Problem 01 : Fractional Knapsack - Complexity Analysis

  • مشکل 02: زمانبندی فاصله - منطق Problem 02 : IntervalScheduling - Logic

  • مشکل 02: زمانبندی فاصله - جاوا اسکریپت کد زنده Problem 02 : IntervalScheduling - Live Code Javascript

  • مسئله 02: زمانبندی فاصله - تحلیل پیچیدگی Problem 02 : IntervalScheduling - Complexity Analysis

  • مشکل 03: کد هافمن - منطق Problem 03 : Huffman Code - Logic

  • مشکل 03: کد هافمن - کد زنده جاوا اسکریپت Problem 03 : Huffman Code - Live Code Javascript

  • مسئله 03: کد هافمن - تحلیل پیچیدگی Problem 03 : Huffman Code - Complexity Analysis

  • مشکل 04: Dijkstra - منطق Problem 04 : Dijkstra - Logic

  • مشکل 04: منطق Dijkstra - کد زنده جاوا اسکریپت Problem 04 : Dijkstra Logic - Live Code Javascript

  • مسئله 04: Dijkstra - تجزیه و تحلیل پیچیدگی Problem 04 : Dijkstra - Complexity Analysis

  • خلاصه Summary

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

  • بخش مقدمه Section Introduction

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

  • شناسایی Identification

  • DP، D&C و Greedy را مقایسه کنید Compare DP, D&C and Greedy

  • نزدیک شدن به راه حل Approaching the Solution

  • مثال 01: توضیح مشکل پلکان و کد زنده Example 01 : Staircase Problem Explanation & Live Code

  • مثال 01: تحلیل پیچیدگی مسئله پلکان Example 01 : Staircase Problem Complexity Analysis

  • مثال 02 - 0/1 کوله پشتی توضیح و کد زنده Example 02 - 0/1 Knapsack Explanation & Live code

  • مثال 02 - تحلیل پیچیدگی کوله پشتی 0/1 Example 02 - 0/1 Knapsack Complexity Analysis

  • مثال 03 - توضیح و کد مسئله تغییر سکه Example 03 - Coin Change Problem Explanation and Code

  • مثال 03 - تحلیل پیچیدگی مسئله تغییر سکه Example 03 - Coin Change Problem Complexity Analysis

  • مثال 04: طولانی ترین توضیح و کد دنباله کاهشی Example 04 : Longest Decreasing Subsequence Explanation And Code

  • مثال 04: طولانی ترین دنباله کاهشی | تحلیل پیچیدگی Example 04 : Longest Decreasing Subsequence | Complexity Analysis

  • مثال 05: مسئله لونشتاین Example 05 : Levenshtein problem

  • مثال 05: تحلیل پیچیدگی لونشتاین Example 05 : Levenshtein Complexity Analysis

  • مثال 06: برش میله Example 06 : Rod Cutting

  • مثال 06: برش میله - تجزیه و تحلیل پیچیدگی Example 06 : Rod Cutting - Complexity Analysis

  • مثال 07: ضرب زنجیره ماتریس Example 07 : Matrix Chain Multiplication

  • مثال 07: ضرب زنجیره ماتریس | تحلیل پیچیدگی Example 07 : Matrix Chain Multiplication | Complexity Analysis

  • خلاصه Summary

الگوریتم های معروف Famous Algorithms

  • الگوی کادانه Kadane's Algo

  • جاوا اسکریپت کد زنده Algo Kadane Kadane's Algo Live Code Javascript

  • تحلیل پیچیدگی الگوریتم کادان Kadane's Algo Complexity Analysis

  • الگوی بلمن فورد BellmanFord's Algo

  • جاوا اسکریپت Algo Live Code BellmanFord BellmanFord's Algo Live Code Javascript

  • تحلیل پیچیدگی الگوریتم بلمن فورد BellmanFord's Algo Complexity Analysis

  • مرتب سازی توپولوژیکی: الگوی کان Topological Sort : Kahn's Algo

  • جاوا اسکریپت کد زنده مرتب سازی توپولوژیکی Topological Sort Live Code Javascript

  • تجزیه و تحلیل پیچیدگی مرتب سازی توپولوژیکی Topological Sort Complexity Analysis

  • الگوریتم کارپ/فورد-فولکرسون ادمون Edmon's Karp/ Ford-Fulkerson Algorithm

  • کد زنده کارپ ادمون/فورد-فالکرسون Edmon's Karp/ Ford-Fulkerson Live Code

درختان Trees

  • نمای کلی درخت Tree Overview

  • شناسایی Identification

  • نزدیک شدن به مشکلات درختان Approaching Tree Problems

  • مسئله 1: درخت جمع - منطق Problem 1: Sum Tree - Logic

  • مشکل 1: درخت جمع - کد زنده Problem 1: Sum Tree - Live Code

  • مشکل 2: معکوس کردن درخت باینری - منطق Problem 2: Invert Binary Tree - Logic

  • مشکل 2: معکوس کردن درخت باینری - کد زنده Problem 2: Invert Binary Tree - Live Code

  • مشکل 3: درخت جستجوی باینری - منطق Problem 3: Binary Search Tree - Logic

  • مشکل 3: درخت جستجوی باینری - کد زنده Problem 3: Binary Search Tree - Live Code

  • مشکل 4: درخت باینری از InOrder & LevelOrder - منطق Problem 4: Binary Tree from InOrder & LevelOrder - Logic

  • مشکل 4: درخت باینری از InOrder & LevelOrder - Live Code Problem 4: Binary Tree from InOrder & LevelOrder - Live Code

نمودارها Graphs

  • نمودار دانش گوگل Google's Knowledge Graph

  • نمودارها - در دنیای واقعی Graphs - In Real World

  • نمودارها - نمای کلی Graphs - Overview

  • اصطلاحات Terminologies

  • شناسایی مشکل Identification of Problem

  • نزدیک شدن به مشکل Approaching the Problem

  • نقشه ذهنی Mind-Map

  • پیمایش نمودار - انواع Graph Traversal - Types

  • پیمایش اول جستجوی عمق Depth First Search Traversal

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

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

  • عرض اولین جستجوی پیمایش Breadth First Search Traversal

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

  • نوع - حداقل درخت پوشا Type - Minimum Spanning Tree

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

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

  • الگوریتم کروسکال Kruskal's Algorithm

  • الگوریتم Union-Find Union-Find Algorithm

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

  • نوع - کوتاهترین مسیر Type - Shortest Path

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

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

  • الگوریتم بلمن فورد Bellman Ford's Algorithm

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

  • الگوریتم فلوید وارشال Floyd Warshall Algorithm

  • الگوریتم فلوید-وارشال - پیاده سازی Floyd-Warshall Algorithm - Implementation

  • الگوریتم جانسون Johnson's Algorithm

  • الگوریتم جانسون - پیاده سازی Johnson's Algorithm - Implementation

  • نوع - جریان شبکه Type - Network Flow

  • الگوریتم فورد-فولکرسون Ford-Fulkerson Algorithm

  • قضیه فورد-فولکرسون - پیاده سازی Ford-Fulkerson Theorem - Implementation

  • قضیه حداکثر جریان حداقل برش Max-Flow Min-Cut Theorem

  • نوع - کامپوننت های به شدت متصل Type - Strongly Connected Components

  • الگوریتم ترجان Tarjan's Algorithm

  • الگوریتم ترجان - پیاده سازی Tarjan's Algorithm - Implementation

  • الگوریتم کوساراجو Kosaraju's Algorithm

  • الگوریتم کوساراجو - پیاده سازی Kosaraju's Algorithm - Implementation

متشکرم! Thank you!

  • متشکرم! Thank you!

نمایش نظرات

نظری ارسال نشده است.

آموزش الگوریتم ها در جاوا اسکریپت: تکنیک های طراحی
خرید اشتراک و دانلود خرید تکی و دانلود | 160,000 تومان (5 روز مهلت دانلود) زمان تقریبی آماده سازی لینک دانلود این دوره آموزشی حدود 5 تا 24 ساعت می باشد.
جزییات دوره
17.5 hours
157
Udemy (یودمی) udemy-small
22 شهریور 1401 (آخرین آپدیت رو دریافت می‌کنید، حتی اگر این تاریخ بروز نباشد.)
610
4.4 از 5
ندارد
دارد
دارد
Basics Strong

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Basics Strong Basics Strong

تیم تکنوکرات ها و دوستداران برنامه نویسی

Udemy (یودمی)

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

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