الگوریتم جستجو: تفاوت میان نسخه‌ها

محتوای حذف‌شده محتوای افزوده‌شده
MerlIwBot (بحث | مشارکت‌ها)
جز ربات: افزودن hu:Keresőalgoritmus
Sadegh.gh.ch (بحث | مشارکت‌ها)
خط ۱۶:
 
== جستجوی لیست ==
الگوریتم‌های جستجوی لیست شاید از ابتدایی ترین انواع الگوریتم‌های جستجو باشند.هدف آن پیدا کردن یک عنصر از مجموعه‌ای از کلید هاست(ممکن است شامل اطلاعات دیگری مرتبط با آن کلید نیز باشد). ساده ترین این الگوریتم‌ها، [[جستجوی خطی]] است که هر عنصر از لیست را با عنصر مورد نظر مقایسه می‌کند. زمان اجرای این الگوریتم از (O(n است وقتی که n تعداد عناصر در لیست باشد. اما می‌توان از روش دیگری استفاده کرد که نیازی به جستجوی تمام لیست نباشد.[[جستجوی دودویی]] اندکی از جستجوی خطی است.زمان اجرای آن از(O(lgn است.این روش برای لیستی با تعداد دادهٔ زیاد بسیار کار آمد تر از روش [[جستجوی خطیترتیبی]] است.اما در این روش لیست باید قبل از جستجو مرتب شده باشد.{{جستجو با میان یابی]] برای داده‌های مرتب شده با تعداد زیاد و توزیع یکنواخت، مناسب تر از جستجوی دودویی است.زمان اجرای آن به طور متوسط ((O(lg(lgn است ولی بدترین زمان اجرای آن (O(n می‌باشد.
[[الگوریتم graver]] الگوریتم پله‌ای است که برای لیست‌های مرتب نشده استفاده می‌شود.
[[جدول درهم‌سازی]] نیز برای جستجوی لیست به کار می‌رود. به طور متوسط زمان اجرای ثابتی دارد.اما نیاز به فضای اضافه داشته و بدترین زمان اجرای آن از(O(n است.
 
== جستجوی درختی ==
الگوریتم‌های جستجوی درختی، قلب شیوه‌های جستجو برای داده‌های ساخت یافته هستند.مبنای اصلی جستجوی درختی، [[گره]]‌هایی است که از یک [[ساختمان داده]] گرفته شده‌اند. هر عنصر که بخواهد اضافه شود با داده‌های موجود در گره‌های [[درخت]] مقایسه می‌شود و به ساختار درخت اضافه می‌شود.با تغییر ترتیب داده‌ها و قرار دادن آنها در درخت، درخت با شیوه‌های مختلفی جستجو می‌شود. برای مثال سطح به سطح ([[جستجوی نخست-پهنا]]) یا پیمایش معکوس درخت ([[جستجوی نخست-ژرفا]]).از مثال‌های دیگر جستجوهای درختی می‌توان به [[جستجوی عمقی تکرار شونده]]، [[جستجوی عمقی محدود شده]]، [[جستجوی دوطرفه]]، [[جستجوی هزینه یکنواخت]] اشاره کرد.