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

دانلود Data structures and Algorithm (DSA) for Tech Interviews

نکته: ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره: مبانی پایتون، توضیحات به سبک تخته سفید، ارائه راهکارهای کدنویسی و حل مسائل LeetCode. تحلیل و پیاده‌سازی ساختارهای داده و الگوریتم‌ها با استفاده از زبان پایتون. درک پیچیدگی زمانی و مکانی برای نوشتن کدهای بهینه و کارآمد. حل مسائل واقعی و سوالات مصاحبه‌های سطح شرکت‌های FAANG. ساخت مهارت‌های قدرتمند در حل مسئله و تفکر الگوریتمیک. تسلط بر بازگشتی (Recursion)، مرتب‌سازی، گراف‌ها، درخت‌ها و برنامه‌نویسی پویا (Dynamic Programming). پیش نیازها: هیچ تجربه قبلی در برنامه‌نویسی لازم نیست؛ این دوره از ابتدایی‌ترین مفاهیم شروع می‌شود. یک کامپیوتر (ویندوز، مک یا لینوکس) با دسترسی به اینترنت. نصب پایتون روی سیستم (در طول دوره برای نصب شما را راهنمایی می‌کنیم). اشتیاق به یادگیری، تمرین و تفکر منطقی — استمرار بسیار مهم‌تر از تجربه قبلی است.

ساختار داده و الگوریتم در پایتون - کامل‌ترین و کاربردی‌ترین راهنمای جامع برای مصاحبه‌های شغلی تکنولوژی.

یادگیری ساختار داده و الگوریتم (DSA) یکی از تعیین‌کننده‌ترین مراحل در مسیر برنامه‌نویسی شماست. این دانش، یک برنامه‌نویس خوب را از یک برنامه‌نویس عالی متمایز می‌کند؛ تفاوت بین کسی که فقط کد می‌زند و کسی که می‌تواند برای مسائل معماری راهکار ارائه دهد. این دوره دقیقاً برای همین تحول طراحی شده است: تبدیل شدن از یک کدنویس ساده پایتون به متفکری الگوریتمیک و حل‌کننده‌ی مسائل مانند یک دانشمند علوم کامپیوتر.

این یک دوره سریع و سطحی نیست. این یک تجربه یادگیری بیش از ۵۱ ساعته، با ساختاری عمیق و طراحی دقیق است که شما را از ابتدایی‌ترین مبانی پایتون به سمت الگوریتم‌های پیشرفته و چالش‌های واقعی مصاحبه‌ها می‌برد. هر مفهوم، از ساده‌ترین حلقه تا پیچیده‌ترین مسئله برنامه‌نویسی پویا، به زبانی ساده و شهودی بیان شده و با نمایش‌های زنده کدنویسی همراه است تا درک کنید چرا یک راهکار به روشی خاص پیاده می‌شود.

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

پس از تثبیت پایه پایتون، به صورت طبیعی وارد دنیای الگوریتم‌ها می‌شویم؛ نه به عنوان فرمول‌های ریاضی انتزاعی، بلکه به عنوان راهکارهای منطقی برای مسائل واقعی. شما یاد می‌گیرید چگونه الگوریتم‌ها را از طریق نمادهای مجانبی (Asymptotic Notations)، پیچیدگی زمانی و مکانی تحلیل کنید و چگونه عملکرد را به صورت شهودی با روش‌های جایگزینی و درخت بازگشتی استخراج نمایید. تمرکز اصلی در این بخش، کمک به شما برای استدلال در مورد عملکرد کد است؛ مهارتی که در هر مصاحبه فنی سطح بالا حیاتی است.

سپس وارد دنیای ساختارهای داده می‌شویم: آرایه‌ها، هیپ‌ها (Heaps)، لیست‌های پیوندی، پشته‌ها، صف‌ها، هش‌مپ‌ها، درخت‌ها و گراف‌ها. اما به جای آموزش صرف تعاریف، داستان پشت هر یک را خواهید فهمید: چه زمانی از آن‌ها استفاده کنیم، چرا وجود دارند و در لایه‌های زیرین چگونه عمل می‌کنند. شما تفاوت آرایه و لیست پیوندی را نه فقط در سینتکس، بلکه در رفتار حافظه درک خواهید کرد؛ می‌فهمید چرا هیپ‌ها در سیستم‌های واقعی مانند زمان‌بندها (Schedulers) مهم هستند و گراف‌ها چگونه شبکه‌ها، نقشه‌ها و روابط را در اپلیکیشن‌های مدرن مدل‌سازی می‌کنند.

هر مفهوم با کد، توضیحات بصری و حل مسئله تقویت می‌شود. برای مثال، در مطالعه آرایه‌ها، نه تنها جستجوی خطی و باینری را پیاده می‌کنید، بلکه الگوریتم‌های مرتب‌سازی مانند Bubble Sort، Insertion Sort و Ternary Search را کالبدشکافی کرده و پیچیدگی زمانی و مقیاس‌پذیری آن‌ها را درک می‌کنید. در مبحث بازگشتی، قدرت این مفهوم را در مسائلی مانند فیبوناتچی و فاکتوریل خواهید دید و یاد می‌گیرید هر فراخوانی بازگشتی را به عنوان داستانی در Stack Frame تجسم کنید.

بخش «تقسیم و conquer» روش شما در حل مسئله را تغییر می‌دهد. الگوریتم‌هایی مانند Merge Sort، Quick Sort و Binary Search صرفاً حفظ نمی‌شوند، بلکه عمیقاً درک می‌شوند. خواهید دید که چگونه مسائل بزرگ به مسائل کوچک‌تر تقسیم می‌شوند؛ مفهومی که موتور محرک طراحی نرم‌افزارهای مدرن، از ایندکس‌گذاری دیتابیس تا پردازش تصویر است.

هنگام بحث درباره لیست‌های پیوندی، پشته‌ها و صف‌ها، دوره به سمت مسائل کاربردی مصاحبه پیش می‌رود. معکوس کردن یک لیست پیوندی، اعتبارسنجی پرانتزها یا مدیریت فراخوانی توابع، صرفاً تمرین نیستند، بلکه الگوهایی هستند که در همه جا، از تاریخچه مرورگر گرفته تا مدیریت حافظه سیستم، آن‌ها را خواهید دید.

با پیشرفت دوره، وارد دنیای درخت‌ها و گراف‌ها می‌شویم که هیجان‌انگیزترین بخش است. منطق پیمایش درخت، درخت‌های جستجوی باینری (BST) و پیاده‌سازی جستجوی اول سطح (BFS) و اول عمق (DFS) را خواهید آموخت. این مباحث، زیربنای هوش مصنوعی مدرن، تحلیل شبکه‌های اجتماعی و الگوریتم‌های مسیریابی در بازی‌ها و سیستم‌های ناوبری هستند.

بخش‌های پایانی مربوط به الگوریتم‌های حریصانه (Greedy) و برنامه‌نویسی پویا (DP) برای به چالش کشیدن و ارتقای سطح شما طراحی شده‌اند. تا زمانی که به این بخش‌ها برسید، بلوغ تحلیلی لازم برای برخورد سیستماتیک با این مسائل را کسب کرده‌اید. الگوریتم‌هایی مانند Prim و Dijkstra برای بهینه‌سازی گراف، کدگذاری هافمن برای فشرده‌سازی داده‌ها و مسائل کلاسیک DP مانند Knapsack و Longest Common Subsequence را مطالعه خواهید کرد. این‌ها مفاهیمی تئوری نیستند، بلکه همان الگوریتم‌هایی هستند که کامپایلرها، ابزارهای فشرده‌سازی و روتین‌های بهینه‌سازی یادگیری ماشین را قدرت می‌بخشند.

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

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

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

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

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

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


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

مقدمه‌ای بر دنیای کدنویسی با پایتون Introduction to coding World with Python

  • معرفی دوره Course Introduction

  • آشنایی با مدرس: هیتش Meet your Instructor - Hitesh

  • برنامه‌نویسی چیست..؟ What is Programming..?

  • تبدیل مفاهیم به کد پایتون Convert that into Python Code

  • معرفی کد پایتون در دنیای واقعی A Real World Python Code Intro

  • چرا از پایتون استفاده کنیم؟ Why to use Python

  • نوشتن اولین کد پایتون در مک (MAC) Writing first Python code on MAC

  • نوشتن اولین کد پایتون در ویندوز (WINDOWS) Writing first Python code on WINDOWS

  • راه‌اندازی محیط مجازی (Virtual Environment) Get everything in Virtual Environment

  • سازماندهی کدهای پایتون به صورت حرفه‌ای Organize Python Code like a Pro

  • استاندارد PEP8 و فلسفه پایتون (Zen of Python) PEP8 and Zen of python

فایل‌های کد و یادداشت‌های جلسات Code files and session notes

  • دریافت تمام فایل‌های کد برای جلسات پایتون Get all code files for code python lectures

  • دریافت تمام فایل‌های کد و یادداشت‌های DSA Get all code files and session notes for DSA

انواع داده‌ها در پایتون Datatypes in python

  • اشیاء: متغیرهای تغییرپذیر و تغییرناپذیر در پایتون Objects - Mutable and Immutable in Python

  • بررسی عمیق اعداد، مقادیر بولی و عملگرها در پایتون Numbers, Booleans and Operators in Depth in Python

  • رشته‌ها: ایندکس، برش (Slice) و کدگذاری String - Index, Slice and Encoding

  • تاپل‌ها و بررسی عضویت Tuples and Membership Testing

  • مبانی لیست‌ها در پایتون Basics of List in Python

  • بارگذاری عملگرها (Operator Overloading) و bytearray در پایتون Operator overloading and bytearray in python

  • مجموعه (Set) و frozenset در پایتون Set and frozenset in python

  • دیکشنری در پایتون Dictionary in Python

  • اشاره‌ای به انواع داده پیشرفته مانند Collections Touch on Advance Data types like Collections

دستورات شرطی در پایتون Conditionals in python

  • پروژه داستان جوشاندن کتری Kettle Boiling Story Project

  • ساخت سیستم سفارش میان‌وعده Building a Snack System

  • ساخت ماشین حساب قیمت چای Building a Chai Price Calculator

  • ساخت سیستم ترموستات هوشمند Building Smart Thermostat System

  • سیستم تخفیف هزینه ارسال Delivery Fees Waiver System

  • ساخت سیستم اطلاعات صندلی قطار Build a train seat information system

حلقه‌ها در پایتون Loops in python

  • مقدمه‌ای بر حلقه‌ها Introduction to Loops

  • دستگاه توزیع توکن چای Tea Token Dispenser

  • آماده‌سازی دسته‌ای چای Batch Chai Preparation

  • حلقه روی لیست: نام سفارشات Looping through list - Orders Name

  • چرا از Enumerate استفاده کنیم؟ Why to use Enumerate

  • ترکیب لیست‌ها با استفاده از Zip Zip Can Combine Lists

  • معرفی حلقه While در پایتون Introducing While Loop in Python

  • دستورات Break، Continue و بازگشت از حلقه Break, Continue and Loop Fallback

  • عملگر Walrus جذاب در پایتون Walrus Operator is Interesting in Python

  • استفاده از دیکشنری به جای Match Case Dictionary in place of Match Case

توابع در پایتون Functions in python

  • توابع: کاهش تکرار و تقسیم وظایف پیچیده Functions - Reducing Duplication and Splitting Complex Tasks

  • توابع: سه ویژگی کاربردی دیگر Functions - 3 More Features

  • محدوده (Scope) و فضای نام در توابع Scope and Named Space in Functions

  • مقایسه Scopeهای Non-local و Global Non local vs Global scopes

  • مدیریت آرگومان‌ها در توابع پایتون Handling Arguments in Function in Python

  • مدیریت خروجی‌های متعدد در پایتون Handle Multiple Return in Python

  • توابع لامبدا (Lambdas)، توابع خالص در مقابل ناخالص Lambdas, Pure vs Impure functions

  • مستندسازی توابع و توابع داخلی (Built-in) Documenting your Functions and Built-in Functions

  • ایمپورت‌ها، ماژول‌ها و فایل Init در پایتون Python Imports, Modules and Init File

مفهوم Comprehensions در پایتون Comprehensions in python

  • Comprehensions در پایتون چیست؟ What are Comprehensions in Python?

  • لیست Comprehensions در پایتون List Comprehensions in Python

  • مجموعه Comprehensions در پایتون Set Comprehensions in Python

  • دیکشنری Comprehensions در پایتون Dictionary Comprehensions in Python

  • ژنراتور Comprehensions برای بهینه‌سازی حافظه Generator Comprehensions for Memory Optimization

ژنراتورها و دکوراتورها در پایتون Generators and decorators in python

  • ژنراتورها با متدهای Yield و Next Generators with Yield and Next Methods

  • ژنراتورهای بی‌نهایت در پایتون Infinite Generators in Python

  • ارسال مقدار به ژنراتورها Send Value to Generators

  • استفاده از Yield From و بستن ژنراتورها Yield From and Close the Generators

  • دکوراتورها در پایتون Decorators in Python

  • ساخت یک Logger با استفاده از دکوراتور Build a Logger with Decorator

  • ساخت دکوراتور احراز هویت (Authorization) Build an Authorization Decorator

برنامه‌نویسی شی‌گرا در پایتون Object oriented programming in python

  • ساخت اولین کلاس و شیء در پایتون Building your 1st Class and Object in Python

  • فضای نام کلاس و شیء Class and Object Namespace

  • سایه اندازی ویژگی‌ها (Attribute Shadowing) در پایتون Attribute Shadowing in Python

  • آرگومان Self در پایتون Self argument in python

  • سازنده‌ها (Constructors) و متد Init در کلاس‌های پایتون Constructors and Init in Python Classes

  • وراثت و ترکیب (Composition) در کلاس‌های پایتون Inheritance and Composition in Python Classes

  • سه روش دسترسی به کلاس پایه 3 Ways to Access Base Class

  • ترتیب حل متد (MRO) Method Resolution Order - MRO

  • متدهای استاتیک در پایتون Static Methods in Python

  • مقایسه Classmethod و Staticmethod Classmethod vs Staticmethod

  • دکوراتور Property: گتر و ستر (Getter and Setter) Property decorator - Getter and Setter

مدیریت فایل‌ها و استثناها در پایتون File and exception handling in python

  • مدیریت خطا چیست؟ What is Error handling

  • کار با Try, except, else و finally Try except else and finally

  • گرفتن استثناهای متعدد Catching multiple exceptions

  • ایجاد خطاهای شخصی (Raise) Raise your own errors

  • ساخت استثناهای سفارشی (Custom Exceptions) Creating custom exceptions

  • مینی پروژه با مبحث استثناها Mini project with exception learning

  • مدیریت فایل با try except و with File handling with try except and with

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

  • نقشه راه کامل DSA Complete DSA Roadmap

  • چرا DSA مورد نیاز است؟ Why DSA Required?

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

  • مراحل ساخت یک الگوریتم Steps to construct an algorithm

تحلیل در الگوریتم‌ها Analysis in Algorithms

  • انواع تحلیل Types of Analysis

  • نماد مجانبی: پیچیدگی زمانی Big O Asymptotic Notation - Big O Time Complexity

  • نماد مجانبی: پیچیدگی زمانی Omega Asymptotic Notation - Omega Time Complexity

  • نماد مجانبی: پیچیدگی زمانی Theta Asymptotic Notation - Theta Time Complexity

  • تحلیل Apriori: تحلیل پیچیدگی زمانی - بخش اول Apriori Analysis - Time Complexity Analysis Part 1

  • تحلیل Apriori: تحلیل پیچیدگی زمانی - بخش دوم Apriori Analysis - Time Complexity Analysis Part 2

  • تحلیل Apriori: تحلیل پیچیدگی زمانی - بخش سوم Apriori Analysis - Time Complexity Analysis Part 3

  • مجموعه تمرینی: نمادهای مجانبی Practice Set - Asymptotic Notation

  • کلاس‌های پیچیدگی Complexity Classes

  • مقدمه‌ای بر روابط بازگشتی (Recurrence Relation) Recurrence Relation Introduction

  • روش جایگزینی: مسئله اول Substitution Method - Problem 1

  • روش جایگزینی: مسئله دوم Substitution Method - Problem 2

  • روش جایگزینی: مسئله سوم Substitution Method - Problem 3

  • رویکرد درخت بازگشتی: مسئله اول Recursive Tree Approach - Problem 1

  • رویکرد درخت بازگشتی: مسئله دوم Recursive Tree Approach - Problem 2

  • رویکرد درخت بازگشتی: مسئله سوم Recursive Tree Approach - Problem 3

  • مجموعه تمرینی: روش جایگزینی و درخت بازگشتی Practice Set - Substitution and Recursive Tree Approach

  • قضیه Master: حالت اول Masters Theorem Case 1

  • قضیه Master: حالت دوم Masters Theorem Case 2

  • قضیه Master: حالت سوم Masters Theorem Case 3

  • مجموعه تمرینی: قضیه Master Practice Set - Masters Theorem

ساختار داده آرایه Array Data Structure

  • مقدمه‌ای بر ساختار داده آرایه Introduction to Array Data Structure

  • پیاده‌سازی ساختار داده آرایه Array Data Structure Implementation

  • آدرس یک عنصر در آرایه یک‌بعدی Address Of An Element In 1D Array

  • آدرس یک عنصر در آرایه دوبعدی Address Of An Element In 2D Array

  • جستجوی عنصر: جستجوی خطی (Linear Search) Searching Of An Element - Linear Search

  • جستجوی عنصر: جستجوی باینری (Binary Search) Searching Of An Element - Binary Search

  • رابطه بازگشتی جستجوی باینری Recurrence Relation Of Binary Search

  • پیاده‌سازی جستجوی باینری Implementation Of Binary Search

  • سوال مصاحبه درباره جستجوی باینری Binary Search Interview Question

  • جستجو در یک ماتریس دوبعدی Search A 2D Matrix

  • جستجوی عنصر: جستجوی Ternary Searching of an element - Ternary Search

  • رابطه بازگشتی جستجوی Ternary Recurrence Relation of Ternary Search

  • پیاده‌سازی جستجوی Ternary Implementation of Ternary Search

  • مرتب‌سازی در آرایه: مقایسه‌ای و غیرمقایسه‌ای Sorting In An Array - Comparison And Non-Comparison

  • الگوریتم‌های مرتب‌سازی پایدار (Stable) و ناپایدار Stable And Unstable Sorting Algorithms

  • الگوریتم‌های مرتب‌سازی Inplace و Outplace Inplace And Outplace Sorting Algorithms

  • مرتب‌سازی مقایسه‌ای: Bubble Sort Comparison Sort - Bubble Sort

  • پیاده‌سازی Bubble Sort Comparison Sort - Bubble Sort Implementation

  • مرتب‌سازی مقایسه‌ای: Selection Sort Comparison Sort - Selection Sort

  • پیاده‌سازی Selection Sort Comparison Sort - Selection Sort Implementation

  • مرتب‌سازی مقایسه‌ای: Insertion Sort Comparison Sort - Insertion Sort

  • پیاده‌سازی Insertion Sort Comparison Sort - Insertion Sort Implementation

  • سوال مصاحبه FAANG: بهترین زمان خرید و فروش سهام FAANG Interview Question on Arrays - Best Time to Buy and Sell Stock- Synchro

  • سوال مصاحبه FAANG: نقاط هم‌خط (Collinear Points) FAANG Interview Question on Arrays - Collinear Points

  • سوال مصاحبه FAANG: عنصر اکثریت (Majority Element) FAANG Interview Question on Arrays - Majority Element

  • سوال مصاحبه FAANG: مرتب‌سازی رنگ‌ها (Sort Colors) FAANG Interview Question on Arrays - Sort Colors

ساختار داده هیپ (Heap) Heap Data Structure

  • مبانی Heap Sort: درخت باینری کامل در مقابل تقریباً کامل Basics of Heap Sort - Full Binary Tree vs Complete Binary Tree vs Almost Comp

  • مفهوم درخت Minheap و Maxheap Concept of Minheap and Maxheap Tree

  • درج (Insertion) در Minheap Insertion in Minheap

  • حذف (Deletion) در درخت Minheap یا Maxheap Deletion in Minheap or Maxheap Tree - Synchronized Clip

  • ساخت درخت Minheap یا Maxheap Creation of Minheap or Maxheap Tree - Synchronized Clip

  • استخراج پیچیدگی زمانی ساخت minheap یا maxheap Time Complexity Derivation to build minheap or maxheap

  • مرتب‌سازی مقایسه‌ای: Heap Sort Comparison Sort - Heap Sort

  • سوال مصاحبه: K عنصر پرتکرار (Top K frequent elements) Interview Question - Top K frequent elements - Synchronized Clip

  • سوال مصاحبه: K نقطه نزدیک‌تر به مبدأ Interview Question - K Closest Points to Origin - Synchronized Clip

بازگشتی (Recursion) Recursion

  • مقدمه‌ای بر بازگشتی (Recursion) Introduction to recursion

  • محاسبه فاکتوریل با بازگشتی و پیاده‌سازی آن Factorial Finding using Recursion with its Implementation

  • سری فیبوناتچی با بازگشتی و پیاده‌سازی آن Fibonacci Series using Recursion with its Implementation

  • محاسبه تعداد روش‌های رسیدن به پله‌های بالا Count Of number of ways to reach upstairs

تقسیم و conquer (Divide and Conquer) Divide and Conquer

  • مقدمه‌ای بر Divide and Conquer Introduction to Divide and Conquer

  • یافتن مقدار حداکثر و حداقل Finding of maxima and minima

  • پیاده‌سازی یافتن مقدار حداکثر و حداقل Implementation of finding of maxima and minima

  • محاسبه توان یک عنصر و پیاده‌سازی آن Finding of power of an element with its Implementation

  • جستجوی باینری Binary Search

  • رابطه بازگشتی جستجوی باینری Recurrence Relation of Binary Search

  • پیاده‌سازی جستجوی باینری Implementation of Binary Search

  • سوال مصاحبه FAANG: مسئله دو اشاره‌گر (Two Pointers) FAANG Interview Question- Two Pointers Problem

  • مرتب‌سازی ادغامی (Merge Sort) Merge Sort

  • پیاده‌سازی Merge Sort Implementation of Merge Sort

  • سوال مصاحبه FAANG: پیچیدگی یافتن تک آرایه مرتب شده در MergeSort FAANG Interview Question on MergeSort-Finding of single sorted array complexity

  • مرتب‌سازی سریع (Quick Sort) Quick Sort

  • پیاده‌سازی Quick Sort Implementation of Quick Sort

  • سوال سناریو-محور مصاحبه FAANG درباره پیچیدگی QuickSort FAANG Interview Scenario Based Question on QuickSort complexity

  • مرتب‌سازی سریع تصادفی (Randomized Quick Sort) Randomized Quick Sort

  • رویه انتخاب (Selection Procedure) Selection Procedure

  • پیاده‌سازی رویه انتخاب Implementation of Selection Procedure

  • محاسبه تعداد وارونگی‌ها (Inversions) Count Of number of an inversions

  • ضرب ماتریسی استراسن (Strassen's Matrix Multiplication) Strassen's Matrix Multiplication

ساختار داده لیست پیوندی (Linked List) Linked List Data Structure

  • مقدمه‌ای بر لیست پیوندی (Linked List) Introduction to Linked List

  • درج گره در لیست پیوندی: ابتدا Insertion of a node in Linked List - Front

  • درج گره در لیست پیوندی: بعد از یک گره مشخص Insertion of a node in Linked List - After a given node

  • درج گره در لیست پیوندی: انتها Insertion of a node in Linked List - End

  • حذف گره در لیست پیوندی Deletion of a node in Linked List

  • جستجوی گره در لیست پیوندی Searching of a node in Linked List

  • سوال مصاحبه FAANG: معکوس کردن گره‌ها در لیست پیوندی FAANG Interview Question - Reversal of a node in Linked List

  • سوال مصاحبه FAANG: شمارش تمام گره‌های لیست پیوندی FAANG Interview Question - Count of all nodes in Linked List

  • سوال مصاحبه FAANG: الگوریتم تشخیص چرخه فلوید (Floyd's Cycle Detection) FAANG Interview Question - Floyd's Cycle Detection Algorithm

  • سوال مصاحبه FAANG: ادغام دو لیست پیوندی مرتب FAANG Interview Question - Merge Of two Sorted Linked List

  • ساختار داده لیست پرشی (Skip List) Skip List Data Structure

پشته و صف (Stack and Queue) Stack and Queue

  • مقدمه‌ای بر ساختار داده پشته و بررسی عمیق عملیات Push Introduction to Stack Data Structure and Push Operation in depth

  • پشته: عملیات Pop Stack- Pop operation

  • پیاده‌سازی پشته با استفاده از آرایه و لیست پیوندی Implementation of Stack using array and linked list

  • صف: عملیات درج و حذف Queue- Insertion and Deletion operation

  • پیاده‌سازی صف با استفاده از آرایه و لیست پیوندی Implementation of Queue using array and linked list

  • سوال مصاحبه FAANG: پرانتزهای معتبر (Valid Parenthesis) FAANG Interview Question - Valid Parenthesis

ساختار داده هشینگ (Hashing) Hashing Data Structure

  • مقدمه‌ای بر ساختار داده هشینگ Introduction to Hashing Data Structure

  • تابع هش و انواع آن Hash Function and its types

  • پیاده‌سازی توابع هش Implementation of Hash Functions

  • آدرس‌دهی باز: Linear Probing و Primary Clustering Open addressing - Linear Probing and Primary Clustering

  • آدرس‌دهی باز: Quadratic Probing و Secondary Clustering Open addressing - Quadratic Probing and Secondary Clustering

  • هشینگ دوگانه (Double Hashing) Double Hashing

  • زنجیره‌سازی (Chaining) Chaining

  • ضریب بار (Load Factor) و هشینگ مجدد (Rehashing) Load Factor and Rehashing

الگوریتم‌های پیمایش درخت Tree Traversal Algorithms

  • مبانی درخت: درخت باینری کامل در مقابل تقریباً کامل Basics of Tree - Full Binary Tree vs Complete Binary Tree vs Almost Complete

  • الگوریتم‌های پیمایش درخت: Inorder, Preorder و PostOrder Tree Traversal Algorithms- Inorder, Preorder and PostOrder

  • سوالات مصاحبه FAANG درباره الگوریتم‌های پیمایش درخت FAANG Interview Questions on Tree Traversal Algorithm

درخت جستجوی باینری (BST) Binary Search Tree

  • مقدمه‌ای بر درخت جستجوی باینری (BST) Introduction to Binary Search Tree

  • درج و پیمایش Inorder در BST Insertion and Inorder Traversal in BST

  • سوال مصاحبه FAANG: کمترین مقدار در BST FAANG Interview Question- Minimum value in BST

  • سوال مصاحبه FAANG: یافتن BSTهای ممکن منحصربه‌فرد FAANG Interview Question- Find unique possible BST

  • جستجو در BST Searching in BST

  • حذف در درخت جستجوی باینری Deletion in Binary Search Tree

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

  • گراف پایه Basic Graph

  • مقدمه‌ای بر الگوریتم‌های پیمایش گراف Introduction to Graph Traversal Algorithms

  • مقدمه‌ای بر جستجوی اول عمق (DFS) Introduction to Depth First Search

  • شبه‌کد DFS و نمایش با مثال DFS Psuedocode and illustration using an example

  • پیاده‌سازی کدنویسی DFS DFS Coding Implementation

  • معرفی BFS، شبه‌کد و نمایش با مثال BFS Intro, Psuedocode and illustration using an example

  • پیاده‌سازی کدنویسی BFS BFS Coding Implementation

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

  • مقدمه‌ای بر الگوریتم‌های حریصانه Introduction to greedy algorithm

  • مسئله کوله‌پشتی کسری (Fractional Knapsack) Fractional Knapsack Problem

  • پیاده‌سازی کوله‌پشتی کسری Implementation of Fractional Knapsack

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

  • درخت پوشای کمینه: الگوریتم کروسکال (Kruskal) Minimum Spanning Tree- Kruskal's Algorithm

  • درخت پوشای کمینه: الگوریتم پریم (Prim) Minimum Spanning Tree- Prim's Algorithm

  • کوتاه‌ترین مسیر تک منبع: الگوریتم دایکسترا (Dijkstra) Single Source Shortest Path- Dijkstra's algorithm

  • پیاده‌سازی الگوریتم دایکسترا Single Source Shortest Path- Dijkstra's algorithm Implementation

  • کدگذاری هافمن (Huffman Coding) Huffman Coding

  • الگوی ادغام بهینه (Optimal Merge Pattern) Optimal Merge Pattern

  • زمان‌بندی کارها با ضرب‌الاجل (Job Scheduling with Deadline) Job Scheduling with Deadline

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

  • مقدمه‌ای بر برنامه‌نویسی پویا (DP) Introduction to dynamic programming

  • سری فیبوناتچی با استفاده از برنامه‌نویسی پویا Fibonacci Series using Dynamic Programming

  • مسئله کوله‌پشتی (Knapsack) Knapsack

مباحث پژوهشی الگوریتمیک Algorithmic Reasearch Topics

  • حوزه پژوهشی: مسائل P, NP, NP-Hard و NP-Complete Research Area- P, NP, NP-Hard and NP-Complete Problems

جمع‌بندی نهایی! Wrap Up!

  • توصیه‌های پایانی برای تمام دانشجویان Some ending tips for all students

  • بررسی دقیق فرآیند مصاحبه برای پذیرش در شرکت‌های FAANG Detailed Interview Process to crack FAANG Companies

نمایش نظرات

آموزش ساختار داده و الگوریتم (DSA) برای مصاحبه‌های تخصصی برنامه‌نویسی
جزییات دوره
52 hours
218
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
3,143
4.6 از 5
دارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Hitesh Choudhary Hitesh Choudhary

معلمی که دوست دارد در مورد فناوری تدریس کند

Priya Bhatia Priya Bhatia

دانشمند ارشد داده (Lead Data Scientist)