انتخاب ساختار داده و الگوریتم مناسب

راهنمای جامع تصمیم‌گیری: جدول انتخاب ساختار داده بر اساس عملیات و انتخاب الگوریتم بر اساس نوع مسئله

جمع‌بندی هنر انتخاب

مهم‌ترین مهارت DSA، حفظ‌کردن پیاده‌سازی‌ها نیست؛ انتخاب درست است. این مبحث، نقشه تصمیم‌گیری نهایی را ارائه می‌دهد.

جدول انتخاب ساختار داده

الگوی عملیات غالبساختارپیچیدگی کلیدی
دسترسی با موقعیتآرایهO(1)
درج/حذف مکرر ابتدالیست پیوندی / dequeO(1)
آخرین عمل مهم (Undo)پشتهO(1)
ترتیب ورود (نوبت)صفO(1)
جستجو/درج/حذف با کلیدجدول هشO(1) میانگین
جستجو + ترتیب حفظ شودBST متوازنO(log n)
min/max مکررهیپO(1) peek
روابط چندبه‌چندگرافO(V+E)
سلسله‌مراتبدرختO(log n)

جدول انتخاب الگوریتم جستجو

وضعیت دادهالگوریتمپیچیدگی
نامرتب / کوچکخطیO(n)
مرتبدودوییO(log n)
جستجوی مکرر با کلیدجدول هش بسازO(1) میانگین
محدوده کوچک صحیحآرایه شمارشO(1)

جدول انتخاب مرتب‌سازی

سناریوالگوریتم
عمومی و عملیQuick Sort / sort آماده
تضمین O(n log n) / پایداریMerge Sort
تقریباً مرتب / کوچکInsertion Sort
صحیح با بازه کمCounting Sort
حافظه نوشتن گرانSelection Sort

جدول انتخاب تکنیک طراحی

مشخصه مسئلهتکنیک
زیرمسئله‌های مستقلتقسیم و حل
زیرمسئله‌های همپوشانبرنامه‌نویسی پویا
انتخاب محلی = بهینه سراسری (اثبات‌شده)حریصانه
ساختار خودمتشابهبازگشت
کوتاه‌ترین مسیر بدون وزنBFS
کوتاه‌ترین مسیر وزن‌داردایکسترا
اتصال کم‌هزینه همهMST (Prim/Kruskal)

چک‌لیست تصمیم‌گیری

  1. حجم داده چقدر است؟ (n کوچک = هرچیزی کار می‌کند!)
  2. کدام عملیات بیشتر انجام می‌شود؟
  3. داده مرتب است یا قابل مرتب‌کردن؟
  4. حافظه اضافی مجاز است؟
  5. پایداری مهم است؟
  6. بدترین حالت چقدر حیاتی است؟
نکته طلایی مصاحبه: اول راه‌حل ساده و درست بگو، Big O آن را تحلیل کن، بعد بهینه کن. مسیر تفکرت مهم‌تر از جواب نهایی است!

جمع‌بندی

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

ابزارهای مرتبط