جستجوی خطی

جستجوی خطی: ساده‌ترین الگوریتم جستجو، پیاده‌سازی، تحلیل پیچیدگی و مقایسه با روش‌های دیگر

جستجوی خطی چیست؟

جستجوی خطی (Linear Search) یا ترتیبی: عناصر را از اول تا آخر یکی‌یکی بررسی می‌کنیم تا هدف پیدا شود یا لیست تمام شود. ساده‌ترین و عمومی‌ترین الگوریتم جستجو.

الگوریتم

  1. از عنصر اول شروع کن
  2. اگر برابر هدف بود، اندیس را برگردان
  3. وگرنه به عنصر بعدی برو
  4. اگر لیست تمام شد، «پیدا نشد» برگردان

پیاده‌سازی

def linear_search(arr, target):
    for i in range(len(arr)):
        if arr[i] == target:
            return i
    return -1   # پیدا نشد

تحلیل پیچیدگی

حالتپیچیدگیسناریو
بهترینO(1)هدف عنصر اول است
میانگینO(n/2) = O(n)هدف وسط لیست
بدترینO(n)هدف آخر است یا وجود ندارد

مزایا و معایب

مزایا:

معایب:

چه زمانی جستجوی خطی؟

نکته: عملگر in پایتون روی لیست، دقیقاً جستجوی خطی است! target in my_list همان O(n) را دارد.

جمع‌بندی

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

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