الگوریتم و کد جستجوی خطی ، یک الگوریتم جستجو به طور کلی الگوریتمی است که درون یک مجموعه از داده ها که توسط یک نوع ساختمان داده ذخیره شده اند مکان یک مقدار داده شده به عنوان آرگومان جستجو را درون ساختمان داده مشخص می کند، یا تعیین می کند در مجموعه وجود دارد یا خیر.
جستجوی خطی (linear search) یا جستجوی ترتیبی (sequential search) کلیه عناصر درون یک لیست را یکی یکی بررسی می کند تا آرگومان جستجو پیدا شود.
ساده ترین روش برای جستجو در آرایه استفاده از جستجوی خطی است. جستجوی خطی به صورت زیر عمل میکند:
- از اولین عنصر آرایه شروع میکند و یکی یکی عناصر آرایه را با مقدار جستجو شده مقایسه میکند.
- اگر یکی از عناصر با مقدار جستجو شده برابر بود،ایندکس آن عنصر را برمیگرداند و جستجو متوقف میشود.
- اگر تا آخر آرایه عنصر مشابهی پیدا نشد مقدار ۱- را برمیگرداند.
فرض کنید که ما می خواهیم حروف “J” را پیدا کنیم که در اینجا کد به زبان ++c و جاوا را در اختیار شما قرار دادیم.
کد جستجوی خطی به زبان ++C:
#include <iostream> using namespace std; int search(int arr[], int n, int x) { int i; for (i = 0; i < n; i++) if (arr[i] == x) return i; return -1; } int main(void) { int arr[] = { 2, 3, 4, 10, 40 }; int x = 10; int n = sizeof(arr) / sizeof(arr[0]); int result = search(arr, n, x); (result == -1)? cout<<"Element is not present in array" : cout<<"Element is present at index " <<result; return 0; }
کد جستجوی خطی به زبان جاوا:
public static int search(int arr[], int x) { int n = arr.length; for(int i = 0; i < n; i++) { if(arr[i] == x) return i; } return -1; } public static void main(String args[]) { int arr[] = { 2, 3, 4, 10, 40 }; int x = 10; int result = search(arr, x); if(result == -1) System.out.print("Element is not present in array"); else System.out.print("Element is present at index " + result); }
نکات مهم:
این الگوریتم به ندرت مورد استفاده قرار میگیرد زیرا الگوریتم های جستجوی دیگر مانند جستجوی دودویی اجازه میدهند مقایسه سریعتری نسبت به جستجوی خطی داشته باشیم.
دیدگاه و پرسش