این دوره در مورد مفاهیم اساسی مسائل الگوریتمی با تمرکز بر بازگشت، عقبگرد، برنامه نویسی پویا و رویکردهای تقسیم و غلبه است. تا جایی که به من مربوط می شود، امروزه این تکنیک ها بسیار مهم هستند، الگوریتم ها را می توان در چندین زمینه از مهندسی نرم افزار گرفته تا بانکداری سرمایه گذاری یا R D استفاده کرد (و کاربردهای متعددی دارد).
بخش 1 - بازگشت
روش های بازگشتی و بازگشتی چیستند
نمایش کلی حافظه پشته و حافظه پشته
سرریز پشته چیست؟
اعداد فیبوناچی
تابع عاملی
مشکل برج هانوی
بخش 2 - الگوریتم های جستجو
رویکرد جستجوی خطی
الگوریتم جستجوی دودویی
بخش 3 - الگوریتم های انتخاب
الگوریتم های انتخاب چیست؟
الگوریتم Hoare
چگونه آمار مرتبه k در زمان اجرای خطی O(N) را پیدا کنیم؟
الگوریتم انتخاب سریع
الگوریتم میانه میانه
مشکل منشی
بخش 4 - مشکلات دستکاری بیتی
اعداد باینری
عملگرهای منطقی و عملگرهای شیفت
بررسی اعداد زوج و فرد
مشکل طول بیت
تکثیر دهقانان روسی
بخش 5 - رهگیری
بازگشت چیست؟
مشکل n-queens
مشکل چرخه هامیلتونی
مشکل رنگ آمیزی
مشکل تور شوالیه
مشکل پیچ و خم
مشکل سودوکو
بخش 6 - برنامه نویسی دینامیک
برنامه نویسی پویا چیست؟
مشکل کوله پشتی
مشکل برش میله
مشکل جمع زیر مجموعه
الگوریتم Kadane
طولانی ترین مشکل متداول فرعی (LCS)
بخش 7 - بسته بندی بهینه
بسته بندی بهینه چیست؟
مشکل بسته بندی مخزن
بخش 8 - رویکردهای تقسیم و تسخیر
رویکرد تفرقه بینداز و حکومت کن چیست؟
برنامه نویسی پویا و روش تقسیم و غلبه
چگونه می توان به مرتب سازی در O(NlogN) با مرتب سازی ادغام دست یافت؟
مشکل نزدیکترین جفت نقطه
بخش 9 - الگوریتم های جستجوی زیر رشته ای
الگوریتم های جستجوی زیر رشته
جستجوی brute-force substring
الگوریتم جستجوی زیر رشته Z
الگوریتم و هش Rabin-Karp
الگوریتم جستجوی زیر رشته ای Knut-Morris-Pratt (KMP)
بخش 10 - سؤالات متداول مصاحبه
برترین سوالات مصاحبه (گوگل، فیسبوک و آمازون)
مشکل آناگرام
مشکل پالیندروم
مشکل بازگشت عدد صحیح
مشکل پرچم ملی هلند
مشکل آب باران به دام افتادن
بخش 11 - تجزیه و تحلیل الگوریتم ها
نحوه اندازه گیری زمان اجرای الگوریتم ها
تحلیل زمان اجرا با نمادهای O بزرگ (ordo)، Ω بزرگ (امگا) و θ بزرگ (تتا)
کلاس های پیچیدگی
الگوریتم های چند جمله ای (P) و چند جمله ای غیر قطعی (NP)
در هر بخش در مورد پیشینه نظری همه این الگوریتمها صحبت خواهیم کرد، سپس میخواهیم این مشکلات را با هم از ابتدا در پایتون پیادهسازی کنیم.
از اینکه به دوره پیوستید متشکریم، بیایید شروع کنیم!
مهندس نرم افزار
نمایش نظرات