این دوره در مورد ساختار داده ها و الگوریتم ها است. ما می خواهیم مشکلات را در جاوا پیاده سازی کنیم. این دوره تقریباً 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، جاوا بنویسیم.
بیشتر الگوریتم های پیشرفته به شدت بر این موضوعات متکی هستند، بنابراین قطعاً ارزش درک اصول اولیه را دارد. این اصول را می توان در چندین زمینه استفاده کرد: در بانکداری سرمایه گذاری، هوش مصنوعی یا الگوریتم های تجارت الکترونیک در بازار سهام.
از اینکه به دوره پیوستید متشکریم، بیایید شروع کنیم!
مهندس نرم افزار
نمایش نظرات