مطالب پیشنهادی از سراسر وب

آموزش کامل الگوریتم ها و ساختارهای داده (CodeWithMosh) - بخش 2

دسته بندی ها: آموزش های ویژه ، علم داده (Data Science) ، آموزش های Code with Mosh

آیا تا به حال به مطالعه علم کامپیوتر پرداخته اید اما هیچ وقت مفهوم پیچیده موضوع ساختارهای داده و الگوریتم را متوجه نشده اید؟

یا شاید شما یک برنامه نویس خودآموخته هستید که دانش کمی درباره این موضوع دارید. یا شاید شما در مصاحبه شغلی موفق نشده اید.

بنابراین چرا ساختارهای داده این روزها اهمیت دارند؟

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

یک موضوع پیچیده را ساده می سازد...

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

در پایان این دوره...

شما قادر خواهید بود:

  • مصاحبه کدنویسی بعدی خود را انجام دهید
  • بهتر و سریعتر کد بنویسید
  • یک توسعه دهنده بهتر شوید
  • مهارت های حل مسئله خود را بهبود بخشید
  • بر اصول علم کامپیوتر مسلط شوید
  • تمام ساختارهای داده اصلی را از ابتدا پیاده سازی کنید
  • بر  ده ها الگوریتم محبوب مسلط شوید.

آنچه یاد خواهید گرفت...

این دوره دومین سری از این دوره است. در قسمت اول، ساختار داده های خطی (آرایه ها، لیست های پیوندی، پشته ها ، صف ها و جداول Hash) را پوشش داده ایم. در این بخش، ما به ساختارهای داده غیرخطی خواهیم پرداخت. قسمت سوم مربوط به جستجو، مرتب سازی و الگوریتم های دستکاری رشته است.

  • درختان باینری
  • درختان AVL 
  • Heaps
  • Tries
  • گراف ها

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

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

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

پیش نیازها

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

تمام آنچه شما برای گذراندن این دوره نیاز دارید برخی مهارت های اساسی برنامه نویسی هستند. اگر متغیرها، حلقه ها و conditional statements را می شناسید، خوب یک امتیاز محسوب می گردد.

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

  • شروع کار
    • مقدمه
    • کد منبع
  • درختان باینری
    • مقدمه 
    • درختان چه هستند
    • تمرین - جمعیت درخت جستجو
    • تمرین - ساختن درخت
    • راه حل - ()insert
    • راه حل - ()find
    • Traversing Trees
    • تمرین - Tree Traversal
    • بازگشت 
    • تراورس اول عمق
    • عمق و ارتفاع گره ها
    • حداقل مقدار در یک درخت
    • تمرین - بررسی برابری
    • راه حل - بررسی برابری
    • تمرین - اعتبارسنجی درختان جستجو باینری
    • راه حل- اعتبارسنجی درختان جستجو باینری 
    • تمرین - گره در K Distance
    • راه حل - گره در K Distance
    • راه حل - گره ها در گره در K Distance از روت
    • تراورس سفارش سطح 
    •  درختان - تمرینات
    • خلاصه
  • درختان AVL 
    • مقدمه
    • درختان متعادل و نامتعادل
    • Rotations 
    • درختان AVL 
    • تمرین - AVL Rotations
    • تمرین - ساخت AVL Tree
    • راه حل - ()insert
    • تمرین - محاسبه قد
    • راه حل - محاسبه قد
    • تمرین - ضریب تعادل
    • راه حل- ضریب تعادل
    • تمرین - تشخیص چرخش
    • راه حل - تشخیص چرخش
    • تمرین - پیاده سازی چرخش
    • تمرین - درختان AVL 
    • خلاصه
    • یادداشت سریع
  • Heaps
    • مقدمه
    • Heaps  چیست؟
    • تمرین - کار با Heaps 
    • تمرین - ساخت یک Heaps 
    • راه حل - ()insert
    • راه حل ()remove
    • راه حل - Edge Cases
    • Heap Sort
    • صف های اولویت
    • تمرین - Heapify 
    • راه حل - Heapify 
    • راه حل - بهینه سازی
    • تمرین - آیتم Kth Largest
    • راه حل - آیتم  Kth Largest
    • Heaps - تمرین
    • خلاصه
  • Tries 
    • مقدمه
    • Tries چیست؟
    • تمرین - جمعیت یک Tries 
    • تمرین - ساخت یک Trie 
    • راه حل - ساخت یک Trie 
    • پیاده سازی با HashTable 
    • انتزاع بهتر
    • تمرین - جستجوی کلمه 
    • راه حل - جستجوی کلمه 
    • Traversals 
    • تمرین - حذف یک کلمه
    • راه حل - حذف یک کلمه
    • تمرین - تکمیل خودکار 
    • راه حل- تکمیل خودکار
    • تمرینات - Tries
    • خلاصه
    • نکات مهم
  • گراف ها
    • مقدمه 
    • گراف چیست؟
    • ماتریکس Adjacency 
    • لیست Adjacency 
    • تمرین - ساخت گراف
    • راه حل - افزایش Nodes و Edges
    • راه حل - حذف Nodes و Edges
    • الگوریتم های Traversal 
    • تمرین - الگوریتم های Traversal 
    • تمرین - Depth-first Traversal (بازگشتی)
    • راه حل- Depth-first Traversal (بازگشتی)
    • تمرین - Depth-first Traversal (تکراری)
    • راه حل - Depth-first Traversal (تکراری)
    • تمرین - Breadth-first Traversal
    • تمرین -  مرتب سازی توپولوژیک
    • راه حل - مرتب سازی توپولوژیک
    • تمرین - تشخیص چرخه (گراف های مستقیم)
    • راه حل - تشخیص چرخه (گراف های مستقیم)
    • خلاصه گراف
  • گراف های غیر مستقیم
    • مقدمه 
    • تمرین - گراف های وزنی
    • راه حل - گراف های وزنی
    • یک راه حل شی گرا 
    • الگوریتم کوتاهترین مسیر Dijkstra
    • تمرین - رسیدن به کمترین فاصله
    • راه حل- کوتاهترین فاصله
    • راه حل- کوتاه ترین مسیر
    • تمرین - تشخیص چرخه (نمودارهای بدون جهت)
    •  راه حل- شناسایی چرخه (نمودارهای غیر مستقیم)
    • حداقل درخت Spanning 
    • تمرین - الگوریتم پرایم
    • راه حل - الگوریتم پرایم
    • جمع یندی
    • با تشکر

سایر قسمت های این دوره:

 

آموزش کامل الگوریتم ها و ساختارهای داده - مقدمه

 

آموزش کامل الگوریتم ها و ساختارهای داده - درخت چیست؟

 

آموزش کامل الگوریتم ها و ساختارهای داده - ساخت درخت

 

آموزش کامل الگوریتم ها و ساختارهای داده - یافتن راه حل

 

آموزش کامل الگوریتم ها و ساختارهای داده  - Travers کردن درختان

 

آیا این نوشته را دوست داشتید؟
CodeWithMosh - The Ultimate Data Structures and Algorithms: Part 2 Publisher:CodeWithMosh Author:Mosh Hamedani Duration:6 Hours Level:BEGINNER

Studied Computer Science - but never really understood the complex topic of data structures and algorithms?

Or maybe you’re a self-taught programmer, with little to no knowledge of this important topic.

Or perhaps you failed a job interview because you couldn't answer basic data structure and algorithm questions.

So, why are data structures so important these days?

Data structures and algorithms are patterns for solving problems. Developers who know more about data structures and algorithms are better at solving problems. That’s why companies like Google, Microsoft and Amazon always include interview questions on data structures and algorithms. They want to assess your problem-solving skills. They don't care how many programming languages and frameworks you're familiar with.

A complex topic made simple

That’s why I made this course. I want to demystify data structures and algorithms once and for all.

I remember being hopelessly confused when my college lecturer tried to teach it, many moons ago. So I had to teach myself. Now I’m an expert on the topic, and I want to save you the dozens of hours I wasted at the library trying to wrap my head around it.

By the end of this course…

You’ll be able to:

  • Ace your next coding interview
  • Write better, faster code
  • Become a better developer
  • Improve your problem solving skills
  • Master computer science fundamentals
  • Implement all the essential data structures from scratch
  • Master dozens of popular algorithms

What you're going to learn

This course is the second of a series. In the first part, we covered the linear data structures (Arrays, Linked Lists, Stacks, Queues and Hash Tables). In this part, we'll be focusing on non-linear data structures. Part 3 is about searching, sorting and string manipulation algorithms.

Here's what you're going to learn in this part:

  • Binary Trees
  • AVL Trees
  • Heaps
  • Tries
  • Graphs

 This is the most comprehensive data structures and algorithms series online. Every example and exercise is picked from popular interview questions asked by Google, Microsoft, Amazon and other big companies.

Who is this course for?

  • Anyone preparing for a coding job interview
  • Computer science students whose lecturers failed to explain the topics
  • Self-taught developers who missed out on a computer science degree
  • Anyone who wants to become a better developer

Requirements

In this course, I use Java to teach the concepts but you can apply these concepts in any programming language. Our focus is on data structures and algorithms, not programming languages and tools.

All you need to take this course are some basic programming skills. If you know variables, loops, and conditional statements, you're good. If you need a quick refresher to get up to speed with Java syntax, you can watch the first part of my Java series.

Ideally, you should have taken the first part of this series as the concepts and exercises in this part are more complex than those covered in the first part.

Course Curriculum

  • Getting Started
    • 1- Introduction (0:50)
    • 2- Source Code
  • Binary Trees 
    • 1- Introduction (0:55)
    • 2- What are Trees (5:36)
    • 3- Exercise- Populating a Binary Search Tree
    • 4- Exercise- Building a Tree (2:41)
    • 5- Solution- insert() (7:44)
    • 6- Solution- find() (2:00)
    • 7- Traversing Trees (5:58)
    • 8- Exercise- Tree Traversal
    • 9- Recursion (5:39)
    • 10- Depth First Traversals (5:23)
    • 11- Depth and Height of Nodes (7:06)
    • 12- Minimum Value in a Tree (7:37)
    • 13- Exercise- Equality Checking (0:45)
    • 14- Solution- Equality Checking (4:08)
    • 15- Exercise- Validating Binary Search Trees (4:14)
    • 16- Solution- Validating Binary Search Trees (4:18)
    • 17- Exercise- Nodes at K Distance (1:48)
    • 18- Solution- Nodes at K Distance from the Root (4:37)
    • 19- Level Order Traversal (2:55)
    • 20- Trees- Exercises
    • 21- Summary (1:22)
  • AVL Trees 
    • 1- Introduction (0:31)
    • 2- Balanced and Unbalanced Trees (3:01)
    • 3- Rotations (5:02)
    • 4- AVL Trees (4:04)
    • 5- Exercise: AVL Rotations
    • 6- Exercise- Building an AVL Tree (1:11)
    • 7- Solution- insert() (8:47)
    • 8- Exercise- Height Calculation (1:24)
    • 9- Solution- Height Calculation (2:43)
    • 10- Exercise- Balance Factor (2:04)
    • 11- Solution- Balance Factor (4:01)
    • 12- Exercise- Detecting Rotations (2:54)
    • 13- Solution- Detecting Rotations (3:32)
    • 14- Exercise- Implementing Rotations (3:51)
    • 15- Solution- Implementing Rotations (5:40)
    • 16- AVL Trees- Exercises
    • 17- Summary (1:01)
    • A Quick Note
  • Heaps 
    • 1- Introduction (0:21)
    • 2- What are Heaps (6:28)
    • 3- Exercise- Working with Heaps
    • 4- Exercise- Building a Heap (1:55)
    • 5- Solution- insert() (8:24)
    • 6- Solution- remove() (7:07)
    • 7- Solution - Edge Cases (6:11)
    • 8- Heap Sort (2:29)
    • 9- Priority Queues (5:04)
    • 10- Exercise- Heapify (1:26)
    • 11- Solution- Heapify (7:12)
    • 12- Solution- Optimization (2:42)
    • 13- Exercise- Kth Largest Item (0:31)
    • 14- Solution- Kth Largest Item (3:47)
    • 15- Heaps- Exercises
    • 16- Summary (1:19)
  • Tries 
    • 1- Introduction (0:30)
    • 2- What are Tries (3:50)
    • 3- Exercise- Populating a Trie
    • 4- Exercise- Building a Trie (3:03)
    • 5- Solution- Building a Trie (5:44)
    • 6- An Implementation with a HashTable (1:50)
    • 7- A Better Abstraction (5:28)
    • 8- Exercise- Looking Up a Word (1:12)
    • 9- Solution- Looking Up a Word (2:35)
    • 10- Traversals (3:35)
    • 11- Exercise- Removing a Word (1:53)
    • 12- Solution- Removing a Word (8:14)
    • 13- Exercise- Auto Completion (2:51)
    • 14- Solution- Auto Completion (5:59)
    • 15- Tries- Exercises
    • 16- Summary (0:45)
    • A Quick Note
  • Graphs 
    • 1- Introduction (0:26)
    • 2- What are Graphs (2:09)
    • 3- Adjacency Matrix (4:14)
    • 4- Adjacency List (6:32)
    • 5- Exercise- Building a Graph (1:50)
    • 6- Solution- Adding Nodes and Edges (7:34)
    • 7- Solution- Removing Nodes and Edges (4:48)
    • 8- Traversal Algorithms (3:58)
    • 9- Exercise- Traversal Algorithms
    • 10- Exercise- Depth-first Traversal (Recursive) (1:29)
    • 11- Solution- Depth-first Traversal (Recursive) (3:44)
    • 12- Exercise- Depth-first Traversal (Iterative) (2:44)
    • 13- Solution- Depth-first Traversal (Iterative) (3:59)
    • 14- Exercise- Breadth-first Traversal (Iterative) (1:18)
    • 15- Solution- Breadth-first Traversal (2:41)
    • 16- Exercise- Topological Sorting (5:06)
    • 17- Solution- Topological Sort (4:05)
    • 18- Exercise- Cycle Detection (Directed Graphs) (3:42)
    • 19- Solution- Cycle Detection (Directed Graphs) (6:26)
    • 20- Graphs Summary (1:02)
  • Undirected Graphs 
    • 1- Introduction (0:26)
    • 2- Exercise- Weighted Graphs (1:30)
    • 3- Solution- Weighted Graphs (5:20)
    • 4- An Object-oriented Solution (6:13)
    • 5- Dijkstra's Shortest Path Algorithm (4:35)
    • 6- Exercise- Getting the Shortest Distance (6:08)
    • 7- Solution- The Shortest Distance (5:27)
    • 8- Solution- Shortest Path (7:53)
    • 9- Exercise- Cycle Detection (Undirected Graphs) (2:03)
    • 10- Solution- Cycle Detection (Undirected Graphs) (4:42)
    • 11- Minimum Spanning Tree (1:56)
    • 12- Exercise- Prim's Algorithm (2:45)
    • 13- Solution- Prim's Algorithm (10:39)
    • 14- Course Wrap Up (0:30)
    • 15- Thank You

پیشنهاد آموزش مرتبط در فرادرس

خرید لینک های دانلود
  • حجم فایل: 7.75GB
  • زبان: انگلیسی
  • زیرنویس انگلیسی: ندارد
  • قیمت: 6000 تومان
  • آموزش کامل الگوریتم ها و ساختارهای داده (CodeWithMosh) - بخش 2 یک محصول ویژه است و دریافت لینک های دانلود آن با پرداخت هزینه امکان پذیر است. اطلاعات بیشتر