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

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

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

افزایش قابلیت اشتغال پذیری

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

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

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

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

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

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

در بخش یک با با مباحث زیر آشنا می شوید:

  • Big O notation
  • آرایه ها
  • لیست های پیوندی
  • Stacks
  • صف ها
  • جداول هش

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

پیش نیازها

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

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

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

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

  • شروع کار
    • مباحث دوره
    • کد منبع
  • Big O Notation
    • مقدمه
    • Big O چیست؟
    • بررسی (1)O
    • بررسی (O(n^2
    • بررسی (O(log n
    • بررسی (O(2^n
    • پیچیدگی فضا
    • Cheat Sheet
  • آرایه ها
    • مقدمه 
    • درک آرایه ها
    • کار با آرایه ها در جاوا
    • تمرین- کلاس آرایه
    • راه حل - ایجاد کلاس
    • راه حل- ()insert
    • راه حل- ()removeAt
    • راه حل- ()indexOf
    • آرایه های دینامیکی
    • آرایه ها - تمرینات
    • خلاصه 
  • لیست های پیوندی
    • مقدمه 
    • لیست های پیوندی چیست؟
    •  کار با لیست های پیوندی
    •  تمرین- ساختن لیست پیوندی
    • راه حل - addLast
    • راه حل - addFirst 
    • راه حل - indexOf 
    • راه حل - contains 
    • راه حل - removeFirst 
    • راه حل - removeLast 
    • پیاده سازی ()size
    • تبدیل لیست های پیوندی به آرایه ها
    • Cheat Sheets
    • آرایه در مقابل لیست های پیوندی
    • انواع لیست های پیوندی
    • تمرین -  معکوس کردن لیست پیوندی
    • راه حل- معکوس کردن لیست پیوندی
    • تمرین - Kth Node از پایان
    • راه حل- Kth Node از پایان
    • لیست های پیوندی - تمرین
    • خلاصه
    • یادداشت های سریع
  • پشته ها
    • مقدمه 
    • پشته ها
    • کار با پشته
    • تمرین- معکوس کردن یک رشته
    • راه حل - معکوس کردن یک رشته
    • تمرین - عبارات متعادل
    • راه حل- پیاده سازی اساسی
    • راه حل- پشتیبانی از براکت های دیگر
    • راه حل- اولین ریفکتورینگ
    • راه حل- ریفکتورینگ
    • تمرین -  ساختن یک پشته با استفاده از یک آرایه
    • راه حل- پیاده سازی پشته با استفاده از یک آرایه
    • پشته ها - تمرینات
    • خلاصه 
  • صف ها
    • مقدمه
    • صف چیست؟
    • صف در جاوا
    • تمرین - معکوس کردن یک صف
    • راه حل- معکوس کردن یک صف
    • تمرین - ساخت صف با استفاده از آرایه
    • راه حل - پیاده سازی اولیه
    • راه حل - آرایه های دایره ای
    • تمرین - پیاده سازی صف با استفاده از یک پشته
    • راه حل- ساختن صف با استفاده از پشته
    • صف های اولویت
    • تمرین -  ساختن صف اولویت
    • راه حل - ساختن صف اولویت
    • راه حل- ریفکتورینگ
    • صف ها - تمرینات
    • خلاصه
  • جداول هش
    • مقدمه 
    • جدول هش چیست؟
    • کار با جدول هش
    • تمرین - یافتن اولین کاراکتر غیرتکراری
    • راه حل - اولین کاراکتر غیرتکراری
    • تمرین - اولین شخصیت تکراری
    • راه حل - اولین شخصیت تکراری
    • توابع هش
    • Collisions 
    • Chaining 
    • آدرس دهی باز - کاوش خطی
    • آدرس دهی باز - Quadratic Probing
    • آدرس دهی باز - هش کردن دوبل
    • تمرین - ساخت یک HashTable 
    • راه حل - ()put
    • راه حل - ()get
    • راه حل - ()remove
    • راه حل - ریفکتورینگ
    • جداول هش - تمرینات
    • خلاصه 
    • جمع بندی دوره
    • با تشکر

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

 

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

 

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

 

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

 

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

Boost Your Employability

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.

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

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'll Learn

This course is the first of a series. In this part, we'll be focusing on linear data structures. Part 2 is all about trees and graphs. Part 3 is about searching, sorting and string manipulation algorithms.

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

  • The Big O notation
  • Arrays
  • Linked Lists
  • Stacks
  • Queues
  • Hash Tables

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.

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.

You don't need any experience with data structures or algorithms.

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

Course Curriculum

  • Getting Started
    • 1- Course Outline (2:52)
    • 2- Source Code
  • The Big O Notation 
    • 1- Introduction (0:24)
    • 2- What is Big O (1:58)
    • 3- O(1) (1:29)
    • 4- O(n) (3:44)
    • 5- O(n^2) (2:24)
    • 6- O(log n) (2:39)
    • 7- O(2^n) (0:50)
    • 8- Space Complexity (2:32)
    • 9- Cheat Sheet
  • Arrays 
    • 1- Introduction (0:44)
    • 2- Understanding Arrays (3:08)
    • 3- Working with Arrays in Java (3:29)
    • 4- Exercise- Array Class (2:51)
    • 5- Solution- Creating the Class (3:19)
    • 6- Solution- insert() (4:19)
    • 7- Solution- removeAt() (4:50)
    • 8- Solution- indexOf() (2:28)
    • 9- Dynamic Arrays (3:48)
    • 10- Arrays- Exercises
    • 11- Summary (1:09)
  • Linked Lists 
    • 1- Introduction (0:36)
    • 2- What are Linked Lists (4:33)
    • 3- Working with Linked Lists (3:24)
    • 4- Exercise- Building a Linked List (1:25)
    • 5- Solution- addLast (6:09)
    • 6- Solution- addFirst (2:13)
    • 7- Solution- indexOf (1:54)
    • 8- Solution- contains (1:05)
    • 9- Solution- removeFirst (4:23)
    • 10- Solution- removeLast (4:40)
    • 11- Implementing size() (4:15)
    • 12- Converting Linked Lists to Arrays (2:10)
    • 13- Cheat Sheets (1:12)
    • 14- Arrays vs Linked Lists (3:21)
    • 15- Types of Linked Lists (3:14)
    • 16- Exercise- Reversing a Linked List (1:33)
    • 17- Solution- Reversing a Linked List (9:00)
    • 18- Exercise- Kth Node from the End (3:20)
    • 19- Solution- Kth Node from the End (5:22)
    • 20- Linked Lists- Exercises
    • 21- Summary (1:12)
    • A Quick Note
  • Stacks 
    • 1- Introduction (0:31)
    • 2- What are Stacks (2:47)
    • 3- Working with Stacks (2:21)
    • 4- Exercise- Reversing a String (0:41)
    • 5- Solution - Reversing a String (5:01)
    • 6- Exercise- Balanced Expressions (2:54)
    • 7- Solution- A Basic Implementation (5:17)
    • 8- Solution- Supporting Other Brackets (3:36)
    • 9- Solution- First Refactoring (4:09)
    • 10- Solution- Second Refactoring (5:50)
    • 11- Exercise- Building a Stack Using an Array (0:47)
    • 12- Solution- Implementing a Stack Using an Array (8:18)
    • 13- Stacks- Exercises
    • 14- Summary (0:33)
  • Queues 
    • 1- Introduction (0:26)
    • 2- What are Queues (2:04)
    • 3- Queues in Java (5:12)
    • 4- Exercise- Reversing a Queue (1:06)
    • 5- Solution- Reversing a Queue (2:17)
    • 6- Exercise- Building a Queue Using an Array (2:03)
    • 7- Solution- A Basic Implementation (6:32)
    • 8- Solution- Circular Arrays (5:54)
    • 9- Exercise- Implementing a Queue Using a Stack (0:55)
    • 10- Solution- Building a Queue Using a Stack (7:43)
    • 11- Priority Queues (1:53)
    • 12- Exercise- Building a Priority Queue (3:57)
    • 13- Solution- Building a Priority Queue (8:51)
    • 14- Solution- Refactoring (3:02)
    • 15- Queues- Exercises
    • 16- Summary (0:57)
  • Hash Tables 
    • 1- Introduction (0:26)
    • 2- What are Hash Tables (2:44)
    • 3- Working with Hash Tables (6:06)
    • 4- Exercise- Find the First Non-repeated Character (0:54)
    • 5- Solution- First Non-repeating Character (7:39)
    • 6- Sets (2:23)
    • 7- Exercise- First Repeated Character (0:32)
    • 8- Solution- First Repeated Character (2:36)
    • 9- Hash Functions (5:55)
    • 10- Collisions (1:06)
    • 11- Chaining (1:40)
    • 12- Open Addressing- Linear Probing (2:41)
    • 13- Open Addressing- Quadratic Probing (1:29)
    • 14- Open Addressing- Double Hashing (3:19)
    • 15- Exercise- Build a HashTable (2:36)
    • 16- Solution- put() (6:07)
    • 17- Solution- get() (4:29)
    • 18- Solution- remove() (2:30)
    • 19- Solution- Refactoring (11:04)
    • 20- Hash Tables- Exercises
    • 21- Summary (1:25)
    • 22- Course Wrap Up (0:32)
    • 23- Thank You

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

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

شهاب 5 ماه قبل

این آخرین بروزرسانی هست ؟ آیا بروزرسانی هم میشه؟

مونا شوشتری 4 ماه و 3 هفته قبل

سلام دوست عزیز، این دوره 3 تا بخش داره که این آخرین ورژنش هست. اگه مطلبی به روز شه ما هم اضافه می کنیم.