آموزش الگوریتم‌ها ساختارهای داده در جاوا شماره 1 (+سوالات مصاحبه)

Algorithms Data Structures in Java #1 (+INTERVIEW QUESTIONS)

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
توضیحات دوره: الگوریتم‌های پایه و ساختارهای داده: درخت AVL، درخت‌های جستجوی باینری، آرایه‌ها، درخت‌های B، فهرست‌های پیوندی، پشته‌ها و HashMaps اصول الگوریتم‌ها و ساختارهای داده را شناسایی می‌کنند، قطعه‌های کد غیربهینه را در مورد آرایه‌ها و لیست‌های پیوندی درباره پشته‌ها و صف‌ها یاد می‌گیرند. درباره درختان جستجوی دودویی در مورد درختان جستجوی باینری متعادل مانند درختان AVL یا درختان قرمز-مشکی اطلاعاتی در مورد صف های اولویت و پشته ها یاد بگیرید درباره درختان B و حافظه خارجی یاد بگیرید در مورد جداول هش و هش بیاموزید پیش نیازها:جاوای پایه (حلقه ها و مقداری OOP)

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

بخش 1:

  • ساختارهای داده و انواع داده های انتزاعی

بخش 2 - آرایه ها

  • آرایه ها چیستند

  • دسترسی تصادفی چیست و چگونه نمایه سازی شود

بخش 3 - لیست های پیوندی

  • لیست‌های پیوندی و فهرست‌های پیوندی مضاعف

  • فهرست پیوندی سوالات مصاحبه مرتبط

بخش 2 - پشته ها و صف ها:

  • پشته ها و صف ها چیستند

  • حافظه پشته و حافظه پشته

  • تجسم حافظه پشته

بخش 3 - درختان جستجوی دودویی (BST):

  • ساختارهای داده درختی چیست؟

  • چگونه به زمان اجرای لگاریتمی O(logN) برسیم؟

  • درخت جستجوی دودویی

بخش 4 - درختان AVL

  • مشکل درختان جستجوی باینری چیست؟

  • درخت جستجوی متعادل: درختان AVL

  • چرخش‌ها

بخش 5 - درختان قرمز-سیاه

  • درختان قرمز-سیاه چیست؟

  • عملیات بازیابی چیست؟

  • مقایسه درختان AVL و درختان قرمز-سیاه

بخش 6 - درختان را پخش کنید

  • نمایش درختان و حافظه پنهان

  • به زمان اجرای O(1) برای دریافت مورد اخیراً بازدید شده دست یابید

بخش 7 - انبوه و صف های اولویت

  • صف های اولویت دار چیست؟

  • ساختار داده پشته چیست؟

  • چگونه می توان مرتب سازی را در O(NlogN) با پشته ها انجام داد؟

بخش 8 - B-Trees

  • حافظه خارجی و حافظه اصلی (RAM)

  • B-trees و کاربردهای آنها در حافظه

  • درختان B* و درختان B+

بخش 9 - Hashing و HashMaps:

  • هش و هش‌تابل (هش مپ) چیست

  • توابع هش چیست

  • نحوه دستیابی به پیچیدگی زمان اجرا O(1)

بخش 10 - الگوریتم های مرتب سازی

  • الگوریتم‌های مرتب‌سازی پایه

  • مرتب‌سازی حبابی و مرتب‌سازی انتخابی

  • مرتب‌سازی درج و مرتب‌سازی پوسته

  • مرتب‌سازی سریع و مرتب‌سازی ادغام شده

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

  • الگوریتم های مرتب سازی رشته

  • مرتب سازی سطلی و مرتب سازی ریشه

بخش 11 - الگوریتم های جستجوی زیر رشته ای

  • الگوریتم های جستجوی زیر رشته

  • جستجوی brute-force substring

  • الگوریتم جستجوی زیر رشته Z

  • الگوریتم و هش Rabin-Karp

  • الگوریتم جستجوی زیر رشته ای Knut-Morris-Pratt (KMP)

بخش 12 (BONUS):

  • کش LRU چیست

  • اجرای کش LRU

بخش 13 (BONUS):

  • درختان Fenwick (درختان باینری نمایه شده)

  • اجرای درخت نمایه شده باینری

بخش 14 - تجزیه و تحلیل الگوریتم ها

  • نحوه اندازه گیری زمان اجرای الگوریتم ها

  • تحلیل زمان اجرا با نمادهای O بزرگ (ordo)، Ω بزرگ (امگا) و θ بزرگ (تتا)

  • کلاس های پیچیدگی

  • الگوریتم های چند جمله ای (P) و چند جمله ای غیر قطعی (NP)

  • O(1)، O(logN)، O(N) و چندین پیچیدگی زمان اجرا دیگر

در هر فصل با پیشینه نظری هر الگوریتم یا ساختار داده آشنا می‌شوید، سپس می‌خواهیم کد را به صورت گام به گام در Eclipse، جاوا بنویسیم.

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

از اینکه به دوره پیوستید متشکریم، بیایید شروع کنیم!


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

معرفی Introduction

  • معرفی Introduction

  • معرفی Introduction

معرفی Introduction

بررسی اجمالی ساختارهای داده Data Structures Overview

  • چرا به ساختارهای داده نیاز داریم؟ Why do we need data structures?

  • چرا به ساختارهای داده نیاز داریم؟ Why do we need data structures?

  • ساختار داده ها و انواع داده های انتزاعی Data structures and abstract data types

  • ساختار داده ها و انواع داده های انتزاعی Data structures and abstract data types

  • آزمون ساختارهای داده و انواع داده های انتزاعی Data Structures and Abstract Data Types Quiz

بررسی اجمالی ساختارهای داده Data Structures Overview

  • آزمون ساختارهای داده و انواع داده های انتزاعی Data Structures and Abstract Data Types Quiz

نصب و راه اندازی محیط Installation and Environment Setup

  • نصب جاوا Installing Java

  • نصب جاوا Installing Java

  • نصب Eclipse Installing Eclipse

  • نصب Eclipse Installing Eclipse

نصب و راه اندازی محیط Installation and Environment Setup

آرایه ها Arrays

  • ساختارهای داده آرایه چیست؟ What are array data structures?

  • معرفی آرایه ها - عملیات Arrays introduction - operations

  • معرفی آرایه ها - عملیات Arrays introduction - operations

  • پیاده سازی آرایه ها Implementing arrays

  • پیاده سازی آرایه ها Implementing arrays

  • ArrayList در جاوا ArrayList in Java

  • آزمون آرایه ها Arrays Quiz

  • آزمون آرایه ها Arrays Quiz

آرایه ها Arrays

  • ساختارهای داده آرایه چیست؟ What are array data structures?

  • ArrayList در جاوا ArrayList in Java

سوالات مصاحبه (آرایه ها) Interview Questions (Arrays)

  • معکوس کردن یک نمای کلی آرایه در محل Reversing an array in-place overview

  • معکوس کردن یک راه حل آرایه در محل Reversing an array in-place solution

  • نمای کلی مشکل آناگرام Anagram problem overview

  • حل مشکل آناگرام Anagram problem solution

  • بررسی اجمالی مشکل پالیندروم Palindrome problem overview

  • بررسی اجمالی مشکل پالیندروم Palindrome problem overview

  • راه حل مشکل پالیندروم Palindrome problem solution

  • بررسی اجمالی مشکل برگشت عدد صحیح Integer reversion problem overview

  • راه حل مشکل بازگشت اعداد صحیح Integer reversion problem solution

  • بررسی اجمالی مشکل پرچم ملی هلند Dutch national flag problem overview

  • بررسی اجمالی مشکل پرچم ملی هلند Dutch national flag problem overview

  • نظریه مشکل پرچم ملی هلند Dutch national flag problem theory

  • راه حل مشکل پرچم ملی هلند Dutch national flag problem solution

  • بررسی اجمالی مشکل آب باران به دام انداختن Trapping rain water problem overview

  • تئوری مشکل آب باران به دام انداختن Trapping rain water problem theory

  • تئوری مشکل آب باران به دام انداختن Trapping rain water problem theory

  • حل مشکل آب باران به دام انداختن Trapping rain water problem solution

  • حل مشکل آب باران به دام انداختن Trapping rain water problem solution

سوالات مصاحبه (آرایه ها) Interview Questions (Arrays)

  • معکوس کردن یک نمای کلی آرایه در محل Reversing an array in-place overview

  • معکوس کردن یک راه حل آرایه در محل Reversing an array in-place solution

  • نمای کلی مشکل آناگرام Anagram problem overview

  • حل مشکل آناگرام Anagram problem solution

  • راه حل مشکل پالیندروم Palindrome problem solution

  • بررسی اجمالی مشکل برگشت عدد صحیح Integer reversion problem overview

  • راه حل مشکل بازگشت اعداد صحیح Integer reversion problem solution

  • نظریه مشکل پرچم ملی هلند Dutch national flag problem theory

  • راه حل مشکل پرچم ملی هلند Dutch national flag problem solution

  • بررسی اجمالی مشکل آب باران به دام انداختن Trapping rain water problem overview

لیست های پیوندی Linked Lists

  • لیست های پیوندی چیست؟ What are linked lists?

  • تئوری لیست پیوندی - عملیات Linked list theory - operations

  • لیست های پیوندی در جاوا !!! Linked lists in Java !!!

  • پیاده سازی لیست پیوندی I Linked list implementation I

  • پیاده سازی لیست پیوندی II Linked list implementation II

  • پیاده سازی لیست پیوندی II Linked list implementation II

  • پیاده سازی لیست پیوندی III Linked list implementation III

  • پیاده سازی لیست پیوندی III Linked list implementation III

  • پیاده سازی لیست پیوندی IV Linked list implementation IV

  • پیاده سازی لیست پیوندی IV Linked list implementation IV

  • مقایسه لیست ها و آرایه های مرتبط Comparing linked lists and arrays

  • کاربردهای عملی (در دنیای واقعی) لیست های پیوندی Practical (real-world) applications of linked lists

  • مسابقه لیست های پیوندی Linked Lists Quiz

لیست های پیوندی Linked Lists

  • لیست های پیوندی چیست؟ What are linked lists?

  • تئوری لیست پیوندی - عملیات Linked list theory - operations

  • لیست های پیوندی در جاوا !!! Linked lists in Java !!!

  • پیاده سازی لیست پیوندی I Linked list implementation I

  • مقایسه لیست ها و آرایه های مرتبط Comparing linked lists and arrays

  • کاربردهای عملی (در دنیای واقعی) لیست های پیوندی Practical (real-world) applications of linked lists

  • مسابقه لیست های پیوندی Linked Lists Quiz

لیست های دارای پیوند دوگانه Doubly Linked Lists

  • لیست های دارای پیوند دوگانه چیست؟ What are doubly linked lists?

  • لیست های دارای پیوند دوگانه چیست؟ What are doubly linked lists?

  • پیاده سازی لیست پیوندی دوگانه Doubly linked list implementation

  • لینکدلیست ها در جاوا LinkedLists in Java

  • مقایسه زمان اجرا: لیست ها و آرایه های مرتبط Running time comparison: linked lists and arrays

  • مسابقه لیست های دارای پیوند دوگانه Doubly Linked Lists Quiz

  • مسابقه لیست های دارای پیوند دوگانه Doubly Linked Lists Quiz

لیست های دارای پیوند دوگانه Doubly Linked Lists

  • پیاده سازی لیست پیوندی دوگانه Doubly linked list implementation

  • لینکدلیست ها در جاوا LinkedLists in Java

  • مقایسه زمان اجرا: لیست ها و آرایه های مرتبط Running time comparison: linked lists and arrays

سوالات مصاحبه (فهرست پیوندی) Interview Questions (Linked List)

  • یافتن گره میانی در نمای کلی فهرست پیوندی Finding the middle node in a linked list overview

  • یافتن گره میانی در نمای کلی فهرست پیوندی Finding the middle node in a linked list overview

  • یافتن گره میانی در راه حل لیست پیوندی Finding the middle node in a linked list solution

  • معکوس کردن یک فهرست پیوندی نمای کلی در محل Reverse a linked list in-place overview

  • یک راه حل در محل لیست پیوندی را معکوس کنید Reverse a linked list in-place solution

  • یک راه حل در محل لیست پیوندی را معکوس کنید Reverse a linked list in-place solution

سوالات مصاحبه (فهرست پیوندی) Interview Questions (Linked List)

  • یافتن گره میانی در راه حل لیست پیوندی Finding the middle node in a linked list solution

  • معکوس کردن یک فهرست پیوندی نمای کلی در محل Reverse a linked list in-place overview

پشته ها Stacks

  • پشته ها چیست؟ What are stacks?

  • پشته ها چیست؟ What are stacks?

  • پشته ها در مدیریت حافظه (پشته ها و پشته ها) Stacks in memory management (stacks and heaps )

  • تجسم حافظه پشته Stack memory visualization

  • تجسم حافظه پشته Stack memory visualization

  • اجرای پشته با لیست پیوندی Stack implementation with linked list

  • اجرای پشته با آرایه ها Stack implementation with arrays

  • اجرای پشته با آرایه ها Stack implementation with arrays

  • مقدمه مترجم دایکسترا Dijkstra's interpreter introduction

  • اجرای مفسر Dijkstra Dijkstra's interpreter implementation

  • اجرای مفسر Dijkstra Dijkstra's interpreter implementation

  • پشته ها در جاوا Stacks in Java

  • کاربردهای عملی (در دنیای واقعی) پشته ها Practical (real-world) applications of stacks

  • کاربردهای عملی (در دنیای واقعی) پشته ها Practical (real-world) applications of stacks

  • آزمون پشته ها Stacks Quiz

  • آزمون پشته ها Stacks Quiz

پشته ها Stacks

  • پشته ها در مدیریت حافظه (پشته ها و پشته ها) Stacks in memory management (stacks and heaps )

  • اجرای پشته با لیست پیوندی Stack implementation with linked list

  • مقدمه مترجم دایکسترا Dijkstra's interpreter introduction

  • پشته ها در جاوا Stacks in Java

صف ها Queues

  • صف ها چیست؟ What are queues?

  • صف ها چیست؟ What are queues?

  • اجرای صف با لیست پیوندی Queue implementation with linked list

  • اجرای صف با لیست پیوندی Queue implementation with linked list

  • صف ها در جاوا Queues in Java

  • صف ها در جاوا Queues in Java

  • مسابقه صف Queues Quiz

  • مسابقه صف Queues Quiz

صف ها Queues

سوالات مصاحبه (پشته و صف) Interview Questions (Stacks and Queues)

  • حداکثر در نمای کلی مشکل پشته Max in a stack problem overview

  • حداکثر در یک راه حل مشکل پشته Max in a stack problem solution

  • حداکثر در یک راه حل مشکل پشته Max in a stack problem solution

  • پشته با نمای کلی صف Stack with queue overview

  • پشته با نمای کلی صف Stack with queue overview

  • پشته با راه حل صف Stack with queue solution

  • پشته با راه حل صف - بازگشت Stack with queue solution - recursion

  • پشته با راه حل صف - بازگشت Stack with queue solution - recursion

سوالات مصاحبه (پشته و صف) Interview Questions (Stacks and Queues)

  • حداکثر در نمای کلی مشکل پشته Max in a stack problem overview

  • پشته با راه حل صف Stack with queue solution

درختان جستجوی دودویی Binary Search Trees

  • نظریه درختان جستجوی دودویی - مبانی Binary search trees theory - basics

  • نظریه درختان جستجوی دودویی - مبانی Binary search trees theory - basics

  • نظریه درختان جستجوی دودویی - جستجو، درج Binary search trees theory - search, insert

  • نظریه درختان جستجوی دودویی - حذف Binary search trees theory - delete

  • نظریه درختان جستجوی دودویی - حذف Binary search trees theory - delete

  • نظریه درختان جستجوی دودویی - پیمایش به ترتیب Binary search trees theory - in-order traversal

  • نظریه درختان جستجوی دودویی - پیمایش به ترتیب Binary search trees theory - in-order traversal

  • نظریه درختان جستجوی دودویی - زمان اجرا Binary search trees theory - running times

  • نظریه درختان جستجوی دودویی - زمان اجرا Binary search trees theory - running times

  • پیاده سازی درخت های جستجوی باینری I - کلاس های Node و Tree Binary search trees implementation I - Node and Tree classes

  • اجرای درختان جستجوی دودویی II - درج Binary search trees implementation II - insertion

  • اجرای درختان جستجوی دودویی II - درج Binary search trees implementation II - insertion

  • اجرای درخت جستجوی دودویی III - حداکثر، حداقل و پیمایش Binary search tree implementation III - max, min and traversal

  • تجسم حافظه پشته - یافتن حداکثر (دقیقه) موارد Stack memory visualization - finding max (min) items

  • تجسم حافظه پشته - پیمایش درخت Stack memory visualization - tree traversal

  • تجسم حافظه پشته - پیمایش درخت Stack memory visualization - tree traversal

  • اجرای درخت جستجوی باینری IV - حذف Binary search tree implementation IV - remove

  • اجرای درخت جستجوی دودویی V - تست Binary search tree implementation V - testing

  • کاربردهای عملی (در دنیای واقعی) درختان Practical (real-world) applications of trees

  • مسابقه درختان جستجوی دودویی Binary Search Trees Quiz

درختان جستجوی دودویی Binary Search Trees

  • نظریه درختان جستجوی دودویی - جستجو، درج Binary search trees theory - search, insert

  • پیاده سازی درخت های جستجوی باینری I - کلاس های Node و Tree Binary search trees implementation I - Node and Tree classes

  • اجرای درخت جستجوی دودویی III - حداکثر، حداقل و پیمایش Binary search tree implementation III - max, min and traversal

  • تجسم حافظه پشته - یافتن حداکثر (دقیقه) موارد Stack memory visualization - finding max (min) items

  • اجرای درخت جستجوی باینری IV - حذف Binary search tree implementation IV - remove

  • اجرای درخت جستجوی دودویی V - تست Binary search tree implementation V - testing

  • کاربردهای عملی (در دنیای واقعی) درختان Practical (real-world) applications of trees

  • مسابقه درختان جستجوی دودویی Binary Search Trees Quiz

سوالات مصاحبه (درخت) Interview Questions (Trees)

  • مقایسه نمای کلی درختان باینری Compare binary trees overview

  • مقایسه نمای کلی درختان باینری Compare binary trees overview

  • مقایسه راه حل درختان باینری Compare binary trees solution

  • مقایسه راه حل درختان باینری Compare binary trees solution

  • به روز رسانی جزئی درختان باینری را مقایسه کنید Compare binary trees minor update

  • به روز رسانی جزئی درختان باینری را مقایسه کنید Compare binary trees minor update

  • k-امین کوچکترین عنصر در نمای کلی درخت جستجو k-th smallest element in a search tree overview

  • k-امین کوچکترین عنصر در نمای کلی درخت جستجو k-th smallest element in a search tree overview

  • k-امین کوچکترین عنصر در راه حل درخت جستجو k-th smallest element in a search tree solution

  • بررسی اجمالی مشکل سن خانواده Family age problem overview

  • راه حل مشکل سن خانواده Family age problem solution

  • راه حل مشکل سن خانواده Family age problem solution

سوالات مصاحبه (درخت) Interview Questions (Trees)

  • k-امین کوچکترین عنصر در راه حل درخت جستجو k-th smallest element in a search tree solution

  • بررسی اجمالی مشکل سن خانواده Family age problem overview

درختان متعادل: درختان AVL Balanced Trees: AVL Trees

  • انگیزه پشت درختان جستجوی باینری متعادل Motivation behind balanced binary search trees

  • انگیزه پشت درختان جستجوی باینری متعادل Motivation behind balanced binary search trees

  • درختان AVL چیست؟ What are AVL trees?

  • معرفی درختان AVL - ارتفاع AVL trees introduction - height

  • معرفی درختان AVL - ارتفاع AVL trees introduction - height

  • معرفی درختان AVL - چرخش AVL trees introduction - rotations

  • معرفی درختان AVL - چرخش AVL trees introduction - rotations

  • معرفی درختان AVL - تصویر AVL trees introduction - illustration

  • پیاده سازی درخت AVL I AVL tree implementation I

  • پیاده سازی درخت AVL I AVL tree implementation I

  • اجرای درخت AVL II AVL tree implementation II

  • اجرای درخت AVL III AVL tree implementation III

  • اجرای درخت AVL IV AVL tree implementation IV

  • اجرای درخت AVL IV AVL tree implementation IV

  • اجرای درخت AVL V AVL tree implementation V

  • کاربردهای عملی (در دنیای واقعی) درختان جستجوی باینری متعادل Practical (real-world) applications of balanced binary search trees

  • مسابقه درختان AVL AVL Trees Quiz

درختان متعادل: درختان AVL Balanced Trees: AVL Trees

  • درختان AVL چیست؟ What are AVL trees?

  • معرفی درختان AVL - تصویر AVL trees introduction - illustration

  • اجرای درخت AVL II AVL tree implementation II

  • اجرای درخت AVL III AVL tree implementation III

  • اجرای درخت AVL V AVL tree implementation V

  • کاربردهای عملی (در دنیای واقعی) درختان جستجوی باینری متعادل Practical (real-world) applications of balanced binary search trees

  • مسابقه درختان AVL AVL Trees Quiz

درختان متعادل: درختان قرمز-سیاه Balanced Trees: Red-Black Trees

  • درختان قرمز و سیاه چیست؟ What are red-black trees?

  • منطق پشت درختان قرمز و سیاه The logic behind red-black trees

  • درختان قرمز-سیاه - موارد رنگ آمیزی و چرخش Red-black trees - recoloring and rotation cases

  • تجسم درختان قرمز و سیاه Red-black trees visualizations

  • تجسم درختان قرمز و سیاه Red-black trees visualizations

  • اجرای درخت قرمز سیاه I Red-black tree implementation I

  • اجرای درخت قرمز سیاه I Red-black tree implementation I

  • اجرای درخت قرمز-سیاه II Red-black tree implementation II

  • اجرای درخت قرمز-سیاه III Red-black tree implementation III

  • اجرای درخت قرمز-سیاه III Red-black tree implementation III

  • اجرای درخت قرمز سیاه IV Red-black tree implementation IV

  • اجرای درخت قرمز-سیاه V Red-black tree implementation V

  • اجرای درخت قرمز-سیاه V Red-black tree implementation V

  • تفاوت بین درخت قرمز-سیاه و درخت AVL Differences between red-black tree and AVL trees

  • مسابقه درختان قرمز-سیاه Red-Black Trees Quiz

  • مسابقه درختان قرمز-سیاه Red-Black Trees Quiz

درختان متعادل: درختان قرمز-سیاه Balanced Trees: Red-Black Trees

  • درختان قرمز و سیاه چیست؟ What are red-black trees?

  • منطق پشت درختان قرمز و سیاه The logic behind red-black trees

  • درختان قرمز-سیاه - موارد رنگ آمیزی و چرخش Red-black trees - recoloring and rotation cases

  • اجرای درخت قرمز-سیاه II Red-black tree implementation II

  • اجرای درخت قرمز سیاه IV Red-black tree implementation IV

  • تفاوت بین درخت قرمز-سیاه و درخت AVL Differences between red-black tree and AVL trees

Splay Trees Splay Trees

  • درختان اسپلی چیست؟ What are splay trees?

  • درختان اسپلی چیست؟ What are splay trees?

  • معرفی درخت اسپلی - مثال Splay tree introduction - example

  • معرفی درخت اسپلی - مثال Splay tree introduction - example

  • اجرای Splay tree I Splay tree implementation I

  • اجرای Splay tree II Splay tree implementation II

  • اجرای Splay tree III Splay tree implementation III

  • اجرای Splay tree III Splay tree implementation III

  • اپلیکیشن Splay trees Splay trees application

  • Splay Trees Quiz Splay Trees Quiz

  • Splay Trees Quiz Splay Trees Quiz

Splay Trees Splay Trees

  • اجرای Splay tree I Splay tree implementation I

  • اجرای Splay tree II Splay tree implementation II

  • اپلیکیشن Splay trees Splay trees application

پشته های باینری Binary Heaps

  • صف های اولویت دار چیست؟ What are priority queues?

  • مقدمه هیپ - مبانی Heap introduction - basics

  • معرفی هیپ - نمایش آرایه Heap introduction - array representation

  • معرفی هیپ - نمایش آرایه Heap introduction - array representation

  • معرفی Heap - عملیات حذف Heap introduction - remove operation

  • معرفی Heap - عملیات حذف Heap introduction - remove operation

  • استفاده از ساختار داده های پشته برای مرتب سازی (Heapsort) Using heap data structure to sort (heapsort)

  • استفاده از ساختار داده های پشته برای مرتب سازی (Heapsort) Using heap data structure to sort (heapsort)

  • معرفی هیپ - زمان اجرا Heap introduction - running times

  • معرفی هیپ - زمان اجرا Heap introduction - running times

  • پشته های دوجمله ای و فیبوناچی Binomial and Fibonacci heaps

  • پشته های دوجمله ای و فیبوناچی Binomial and Fibonacci heaps

  • اجرای هیپ I Heap implementation I

  • اجرای Heap II Heap implementation II

  • اجرای Heap II Heap implementation II

  • اجرای هیپ III Heap implementation III

  • Heaps و java.util.PriorityQueue Heaps and java.util.PriorityQueue

  • Heaps و java.util.PriorityQueue Heaps and java.util.PriorityQueue

  • Heaps Quiz Heaps Quiz

  • Heaps Quiz Heaps Quiz

پشته های باینری Binary Heaps

  • صف های اولویت دار چیست؟ What are priority queues?

  • مقدمه هیپ - مبانی Heap introduction - basics

  • اجرای هیپ I Heap implementation I

  • اجرای هیپ III Heap implementation III

سوالات مصاحبه هیپز Heaps Interview Questions

  • بررسی نمای کلی نمایش پشته آرایه Checking array heap representation overview

  • بررسی نمای کلی نمایش پشته آرایه Checking array heap representation overview

  • بررسی راه حل نمایش آرایه پشته Checking array heap representation solution

  • در حال تبدیل حداکثر پشته به حداقل هیپ نمای کلی Converting max heap to min heap overview

  • در حال تبدیل حداکثر پشته به حداقل هیپ نمای کلی Converting max heap to min heap overview

  • تبدیل حداکثر هپ به محلول کمینه هیپ Converting max heap to min heap solution

  • تبدیل حداکثر هپ به محلول کمینه هیپ Converting max heap to min heap solution

سوالات مصاحبه هیپز Heaps Interview Questions

  • بررسی راه حل نمایش آرایه پشته Checking array heap representation solution

B-درختان B-Trees

  • حافظه خارجی چیست؟ What is external memory?

  • حافظه خارجی چیست؟ What is external memory?

  • زمان دسترسی به دیسک Disk access times

  • زمان دسترسی به دیسک Disk access times

  • B-trees چیست؟ What are B-trees?

  • B-tree معرفی - درج B-tree introduction - insertion

  • B-tree معرفی - درج B-tree introduction - insertion

  • B-tree معرفی - حذف B-tree introduction - deletion

  • انواع B-tree و سیستم های فایل B-tree variants and file systems

  • انواع B-tree و سیستم های فایل B-tree variants and file systems

  • مسابقه B-Trees B-Trees Quiz

  • مسابقه B-Trees B-Trees Quiz

B-درختان B-Trees

  • B-trees چیست؟ What are B-trees?

  • B-tree معرفی - حذف B-tree introduction - deletion

هشتبل ها Hashtables

  • آرایه های انجمنی چیست؟ What are associative arrays?

  • مقدمه Hashtables - مبانی Hashtables introduction - basics

  • مقدمه Hashtables - مبانی Hashtables introduction - basics

  • معرفی Hashtables - برخورد Hashtables introduction - collisions

  • معرفی Hashtables - ضریب بار و تغییر اندازه پویا Hashtables introduction - load factor & dynamic resizing

  • معرفی Hashtables - ضریب بار و تغییر اندازه پویا Hashtables introduction - load factor & dynamic resizing

  • اجرای زنجیره ای I Chaining implementation I

  • اجرای زنجیره ای II Chaining implementation II

  • اجرای زنجیره ای III Chaining implementation III

  • اجرای زنجیره ای III Chaining implementation III

  • اجرای کاوش خطی I Linear probing implementation I

  • اجرای کاوش خطی I Linear probing implementation I

  • اجرای کاوش خطی II Linear probing implementation II

  • اجرای کاوش خطی II Linear probing implementation II

  • اجرای کاوشگر خطی عمومی I - مبانی Generic linear probing implementation I - basics

  • اجرای کاوشگر خطی عمومی I - مبانی Generic linear probing implementation I - basics

  • اجرای کاوش خطی عمومی II - دریافت Generic linear probing implementation II - get

  • اجرای کاوش خطی عمومی III - قرار داده است Generic linear probing implementation III - put

  • اجرای کاوش خطی عمومی III - قرار داده است Generic linear probing implementation III - put

  • اجرای کاوش خطی عمومی IV - حذف Generic linear probing implementation IV - remove

  • اجرای کاوش خطی عمومی V - تغییر اندازه Generic linear probing implementation V - resize

  • اجرای کاوش خطی عمومی V - تغییر اندازه Generic linear probing implementation V - resize

  • اجرای کاوش خطی عمومی VI - آزمایش Generic linear probing implementation VI - testing

  • نقشه ها در مجموعه های جاوا Maps in Java Collections

  • نقشه ها در مجموعه های جاوا Maps in Java Collections

  • نقشه‌ها در مجموعه‌های جاوا - hashCode() و برابر () Maps in Java Collections - hashCode() and equals()

  • چرا باید از اعداد اول در توابع هش استفاده کرد؟ Why to use prime numbers in hash-functions?

  • کاربردهای عملی (در دنیای واقعی) هش کردن Practical (real-world) applications of hashing

  • کاربردهای عملی (در دنیای واقعی) هش کردن Practical (real-world) applications of hashing

  • مسابقه هشتبلز Hashtables Quiz

  • مسابقه هشتبلز Hashtables Quiz

هشتبل ها Hashtables

  • آرایه های انجمنی چیست؟ What are associative arrays?

  • معرفی Hashtables - برخورد Hashtables introduction - collisions

  • اجرای زنجیره ای I Chaining implementation I

  • اجرای زنجیره ای II Chaining implementation II

  • اجرای کاوش خطی عمومی II - دریافت Generic linear probing implementation II - get

  • اجرای کاوش خطی عمومی IV - حذف Generic linear probing implementation IV - remove

  • اجرای کاوش خطی عمومی VI - آزمایش Generic linear probing implementation VI - testing

  • نقشه‌ها در مجموعه‌های جاوا - hashCode() و برابر () Maps in Java Collections - hashCode() and equals()

  • چرا باید از اعداد اول در توابع هش استفاده کرد؟ Why to use prime numbers in hash-functions?

هش کردن سوالات مصاحبه Hashing Interview Questions

  • بررسی اجمالی مسئله دو جمع Two sum problem overview

  • بررسی اجمالی مسئله دو جمع Two sum problem overview

  • حل مسئله دو جمع Two sum problem solution

  • حل مسئله دو جمع Two sum problem solution

هش کردن سوالات مصاحبه Hashing Interview Questions

الگوریتم های مرتب سازی اولیه Basic Sorting Algorithms

  • مقدمه مرتب سازی Sorting introduction

  • ثبات در مرتب سازی چیست؟ What is stability in sorting?

  • الگوریتم های مرتب سازی تطبیقی Adaptive sorting algorithms

  • الگوریتم های مرتب سازی تطبیقی Adaptive sorting algorithms

  • آزمون اصول مرتب سازی الگوریتم ها Sorting Algorithms Basics Quiz

  • آزمون اصول مرتب سازی الگوریتم ها Sorting Algorithms Basics Quiz

  • معرفی مرتب سازی بوگو Bogo sort introduction

  • اجرای مرتب سازی بوگو Bogo sort implementation

  • مسابقه مرتب سازی بوگو Bogo Sort Quiz

  • مسابقه مرتب سازی بوگو Bogo Sort Quiz

  • مقدمه مرتب سازی حبابی Bubble sort introduction

  • مقدمه مرتب سازی حبابی Bubble sort introduction

  • اجرای مرتب سازی حبابی Bubble sort implementation

  • اجرای مرتب سازی حبابی Bubble sort implementation

  • مقدمه مرتب سازی انتخابی Selection sort introduction

  • مقدمه مرتب سازی انتخابی Selection sort introduction

  • اجرای مرتب سازی انتخاب Selection sort implementation

  • مسابقه مرتب سازی انتخاب Selection Sort Quiz

  • مسابقه مرتب سازی انتخاب Selection Sort Quiz

  • مقدمه مرتب سازی درج Insertion sort introduction

  • پیاده سازی مرتب سازی درج Insertion sort implementation

  • مسابقه مرتب سازی درج Insertion Sort Quiz

  • معرفی مرتب سازی پوسته Shell sort introduction

  • اجرای مرتب سازی پوسته Shell sort implementation

  • اجرای مرتب سازی پوسته Shell sort implementation

  • امتحان مرتب سازی پوسته Shell Sort Quiz

  • امتحان مرتب سازی پوسته Shell Sort Quiz

  • معرفی Quicksort Quicksort introduction

  • مقدمه مرتب سازی سریع - مثال Quicksort introduction - example

  • اجرای مرتب سازی سریع Quicksort implementation

  • پارتیشن بندی Hoare و پارتیشن بندی Lomuto Hoare's partitioning and Lomuto's partitioning

  • بدترین سناریو برای مرتب سازی سریع چیست؟ What is the worst-case scenario for quicksort?

  • بدترین سناریو برای مرتب سازی سریع چیست؟ What is the worst-case scenario for quicksort?

  • QuickSort Quiz QuickSort Quiz

  • مقدمه مرتب سازی ادغام Merge sort introduction

  • مقدمه مرتب سازی ادغام Merge sort introduction

  • اجرای مرتب سازی ادغام Merge sort implementation

  • اجرای مرتب سازی ادغام Merge sort implementation

  • ادغام مرتب سازی و تجسم حافظه پشته Merge sort and stack memory visualization

  • مسابقه مرتب سازی ادغام Merge Sort Quiz

  • معرفی الگوریتم های ترکیبی Hybrid algorithms introduction

  • معرفی الگوریتم های ترکیبی Hybrid algorithms introduction

  • الگوریتم های غیرمقایسه ای Non-comparison based algorithms

  • معرفی مرتب سازی شمارش Counting sort introduction

  • معرفی مرتب سازی شمارش Counting sort introduction

  • اجرای مرتب سازی شمارش Counting sort implementation

  • اجرای مرتب سازی شمارش Counting sort implementation

  • مقدمه مرتب سازی رادیکس Radix sort introduction

  • پیاده سازی مرتب سازی رادیکس Radix sort implementation

  • امتحان مرتب‌سازی غیرمقایسه‌ای Non-Comparison Based Sorting Quiz

الگوریتم های مرتب سازی اولیه Basic Sorting Algorithms

  • مقدمه مرتب سازی Sorting introduction

  • ثبات در مرتب سازی چیست؟ What is stability in sorting?

  • معرفی مرتب سازی بوگو Bogo sort introduction

  • اجرای مرتب سازی بوگو Bogo sort implementation

  • اجرای مرتب سازی انتخاب Selection sort implementation

  • مقدمه مرتب سازی درج Insertion sort introduction

  • پیاده سازی مرتب سازی درج Insertion sort implementation

  • مسابقه مرتب سازی درج Insertion Sort Quiz

  • معرفی مرتب سازی پوسته Shell sort introduction

  • معرفی Quicksort Quicksort introduction

  • مقدمه مرتب سازی سریع - مثال Quicksort introduction - example

  • اجرای مرتب سازی سریع Quicksort implementation

  • پارتیشن بندی Hoare و پارتیشن بندی Lomuto Hoare's partitioning and Lomuto's partitioning

  • QuickSort Quiz QuickSort Quiz

  • ادغام مرتب سازی و تجسم حافظه پشته Merge sort and stack memory visualization

  • مسابقه مرتب سازی ادغام Merge Sort Quiz

  • الگوریتم های غیرمقایسه ای Non-comparison based algorithms

  • مقدمه مرتب سازی رادیکس Radix sort introduction

  • پیاده سازی مرتب سازی رادیکس Radix sort implementation

  • امتحان مرتب‌سازی غیرمقایسه‌ای Non-Comparison Based Sorting Quiz

جستجوی رشته فرعی Substring Search

  • مقدمه جستجوی Brute-Force Brute-force search introduction

  • مقدمه جستجوی Brute-Force Brute-force search introduction

  • اجرای جستجوی Brute-Force Brute-force search implementation

  • اجرای جستجوی Brute-Force Brute-force search implementation

  • آزمون جستجوی ساده زیر رشته ای Naive Substring Search Quiz

  • آزمون جستجوی ساده زیر رشته ای Naive Substring Search Quiz

  • معرفی الگوریتم رابین-کارپ Rabin-Karp algorithm introduction

  • معرفی الگوریتم رابین-کارپ Rabin-Karp algorithm introduction

  • پیاده سازی الگوریتم رابین-کارپ Rabin-Karp algorithm implementation

  • آزمون الگوریتم رابین-کارپ Rabin-Karp Algorithm Quiz

  • معرفی الگوریتم Knuth-Morris-Pratt Knuth-Morris-Pratt algorithm introduction

  • معرفی الگوریتم 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 implementation

  • آزمون الگوریتم Knuth-Morris-Pratt Knuth-Morris-Pratt Algorithm Quiz

  • آزمون الگوریتم Knuth-Morris-Pratt Knuth-Morris-Pratt Algorithm Quiz

  • معرفی الگوریتم Z Z algorithm introduction

  • معرفی الگوریتم Z Z algorithm introduction

  • تصویر الگوریتم Z Z algorithm illustration

  • تصویر الگوریتم Z Z algorithm illustration

  • پیاده سازی الگوریتم Z Z algorithm implementation

  • آزمون الگوریتم Z Z Algorithm Quiz

  • مقایسه الگوریتم های جستجوی زیر رشته ای Substring search algorithms comparison

  • مقایسه الگوریتم های جستجوی زیر رشته ای Substring search algorithms comparison

  • کاربردهای جستجوی زیر رشته ای Applications of substring search

جستجوی رشته فرعی Substring Search

  • پیاده سازی الگوریتم رابین-کارپ Rabin-Karp algorithm implementation

  • آزمون الگوریتم رابین-کارپ Rabin-Karp Algorithm Quiz

  • ساخت جدول مسابقه جزئی Constructing the partial match table

  • پیاده سازی الگوریتم Z Z algorithm implementation

  • آزمون الگوریتم Z Z Algorithm Quiz

  • کاربردهای جستجوی زیر رشته ای Applications of substring search

جایزه: حافظه نهان کمترین استفاده اخیر (LRU). BONUS: Least Recently Used (LRU) Cache

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

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

  • معرفی کش LRU LRU cache introduction

  • پیاده سازی کش LRU I LRU cache implementation I

  • پیاده سازی کش LRU II LRU cache implementation II

  • پیاده سازی کش LRU II LRU cache implementation II

جایزه: حافظه نهان کمترین استفاده اخیر (LRU). BONUS: Least Recently Used (LRU) Cache

  • معرفی کش LRU LRU cache introduction

  • پیاده سازی کش LRU I LRU cache implementation I

جایزه: درختان Fenwick (درختان باینری ایندکس شده) BONUS: Fenwick Trees (Binary Indexed Trees)

  • درختان فنویک چیست؟ What are Fenwick trees?

  • معرفی درختان فنویک - ساختار درختی Fenwick trees introduction - tree structure

  • معرفی درختان فنویک - ساختار درختی Fenwick trees introduction - tree structure

  • معرفی درختان Fenwick - به روز رسانی Fenwick trees introduction - update

  • اجرای درختان فنویک Fenwick trees implementation

  • اجرای درختان فنویک Fenwick trees implementation

جایزه: درختان Fenwick (درختان باینری ایندکس شده) BONUS: Fenwick Trees (Binary Indexed Trees)

  • درختان فنویک چیست؟ What are Fenwick trees?

  • معرفی درختان Fenwick - به روز رسانی Fenwick trees introduction - update

مراحل بعدی Next Steps

  • مراحل بعدی Next steps

مراحل بعدی Next Steps

  • مراحل بعدی Next steps

### ضمیمه - درس تصادف نظریه پیچیدگی ### ### APPENDIX - COMPLEXITY THEORY CRASH COURSE ###

  • چگونه زمان اجرای الگوریتم ها را اندازه گیری کنیم؟ How to measure the running times of algorithms?

  • چگونه زمان اجرای الگوریتم ها را اندازه گیری کنیم؟ How to measure the running times of algorithms?

  • تصویر نظریه پیچیدگی Complexity theory illustration

  • تصویر نظریه پیچیدگی Complexity theory illustration

  • نمادهای پیچیدگی - ordo بزرگ (O). Complexity notations - big (O) ordo

  • نمادهای پیچیدگی - ordo بزرگ (O). Complexity notations - big (O) ordo

  • نمادهای پیچیدگی - Ω بزرگ (امگا) Complexity notations - big Ω (omega)

  • نمادهای پیچیدگی - Ω بزرگ (امگا) Complexity notations - big Ω (omega)

  • نمادهای پیچیدگی - تتا بزرگ (θ). Complexity notations - big (θ) theta

  • نمادهای پیچیدگی - تتا بزرگ (θ). Complexity notations - big (θ) theta

  • زمان اجرای الگوریتم Algorithm running times

  • زمان اجرای الگوریتم Algorithm running times

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

  • تجزیه و تحلیل الگوریتم ها - حلقه ها Analysis of algorithms - loops

  • تجزیه و تحلیل الگوریتم ها - حلقه ها Analysis of algorithms - loops

  • مطالعه موردی - O(1) Case study - O(1)

  • مطالعه موردی - O(1) Case study - O(1)

  • مطالعه موردی - O(logN) Case study - O(logN)

  • مطالعه موردی - O(logN) Case study - O(logN)

  • مطالعه موردی - O(N) Case study - O(N)

  • مطالعه موردی - O(N*N) Case study - O(N*N)

### ضمیمه - درس تصادف نظریه پیچیدگی ### ### APPENDIX - COMPLEXITY THEORY CRASH COURSE ###

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

  • مطالعه موردی - O(N) Case study - O(N)

  • مطالعه موردی - O(N*N) Case study - O(N*N)

برنامه تصویرسازی الگوریتم رایگان Algorhyme FREE Algorithms Visualizer App

  • برنامه تجسم الگوریم Algorhyme Visualization App

  • برنامه تجسم الگوریم Algorhyme Visualization App

  • الگوریتم - الگوریتم ها و ساختارهای داده Algorhyme - Algorithms and Data Structures

برنامه تصویرسازی الگوریتم رایگان Algorhyme FREE Algorithms Visualizer App

  • الگوریتم - الگوریتم ها و ساختارهای داده Algorhyme - Algorithms and Data Structures

مواد درسی (دانلود) Course Materials (DOWNLOADS)

  • کد منبع و اسلایدها را دانلود کنید Download source code and slides

مواد درسی (دانلود) Course Materials (DOWNLOADS)

  • کد منبع و اسلایدها را دانلود کنید Download source code and slides

نمایش نظرات

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

آموزش الگوریتم‌ها ساختارهای داده در جاوا شماره 1 (+سوالات مصاحبه)
خرید اشتراک و دانلود خرید تکی و دانلود | 320,000 تومان (5 روز مهلت دانلود) در صورت خرید اشتراک، این آموزش بدلیل حجم بالا معادل 2 دوره است و 2 دوره از اشتراک شما کم می شود. زمان تقریبی آماده سازی لینک دانلود این دوره آموزشی حدود 5 تا 24 ساعت می باشد.
جزییات دوره
23.5 hours
209
Udemy (یودمی) udemy-small
29 اسفند 1401 (آخرین آپدیت رو دریافت می‌کنید، حتی اگر این تاریخ بروز نباشد.)
23,772
4.7 از 5
دارد
دارد
دارد

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Holczer Balazs Holczer Balazs

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

Udemy (یودمی)

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

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