جستجوی خطی: تفاوت میان نسخه‌ها

محتوای حذف‌شده محتوای افزوده‌شده
Sadegh.gh.ch (بحث | مشارکت‌ها)
Amiraram (بحث | مشارکت‌ها)
بدون خلاصۀ ویرایش
خط ۱:
'''جستجوی خطی''' یا '''جستجوی ترکیبی''' یکی از [[الگوریتم]] هایی که برای جستجوی یک سری داده وجود دارد '''الگوریتم جستجوی ترتیبی''' {{انگلیسی|sequential search}} یا '''جستجوی خطی''' {{انگلیسی|linear search}}است . این الگوریتم کلیه عناصر درون یک لیست را یکی یکی بررسی می کند تا آرگومان جستجو پیدا شود.
این الگورتم جزو ساده ترین الگوریتم های جستجو می باشد. که حالت خاصی از [[جستجوی جامع]] ( به [[انگلیسی]] : Brute-force search ) می باشد.
== مقدمه ==
خط ۶:
== شبه‌کد ==
شبه کد به [[روش تکرار]] به صورت زیر است:
<source lang=c>
{{چپ چین}}
For each item in the list:
if that item has the desired value,
stop the search and return the item's location.
Return Λ.
</source>
{{پایان چپ چین}}
==پیاده سازی با مثال ==
کد زیر به زبان ++C روش جسجوی خطی را نشان می دهد. مقدار x درون [[آرایه]] A با n عنصر جستجو می شود و موقعیت آنرا بر می گرداند. اگر در [[آرایه]] وجود نداشته باشد صفر برگردانده می شود.
<source lang=c>
{{چپ چین}}
 
int i=0;
for(i=0;i<=n;i++)
سطر ۲۹ ⟵ ۲۸:
cout<<"Not Found!";
return 0;
</source>
{{پایان چپ چین}}
 
== پیچیدگی ==
اگر تعداد عناصر مجموعه n باشد، زمان جستجو [[نماد O بزرگ | (O(n ]]است. [[حالت‌های بهترین، بدترین و متوسط | بهترین حالت زمانی]] اتفاق می افتد که آرگومان جستجو برابر با اولین عنصر لیست باشد که با یک مقایسه پیدا می شود. [[حالت‌های بهترین، بدترین و متوسط | بدترین حالت زمانی]] وقتی است که داده درون لیست وجود ندارد یا در انتهای لیست واقع شده است که n مقایسه مورد نیاز است.
خط ۴۹:
|بازیابی = ۲ ژوئیه ۲۰۰۸
}}
[[en:Linear search]]