آموزش ++c, زبان c++

جستجوی خطی در سی پلاس پلاس (Linear Search)

جستجوی خطی در سی پلاس پلاس

در این جلسه تیم کدگیت را با آموزش جستجوی خطی در سی پلاس پلاس همراهی کنید. ابتدای این آموزش جستجوی خطی را معرفی و سپس آن را در زبان سی پلاس پلاس پیاده سازی خواهیم کرد. همچنین پیش نیاز این آموزش شامل موارد زیر است:

  1. آشنایی با تابع
  2. آشنایی با آرایه

جستجوی خطی

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

این الگورتم جزو ساده ترین الگوریتم‌های جستجو می‌باشد. که حالت خاصی از جستجوی جامع می‌باشد(ویکیپدیا).

جستجوی خطی در سی پلاس پلاس

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

int LinearSearch(int data[], int len, int key) {

    int i;

    for (i = 0; i < len; i++)

         if (data[i] == key)

             return i;

    return -1;

}

همانطور که در کد جستجوی خطی در سی پلاس پلاس می‌بینید ما متدی به نام LinearSearch نوشتیم این متد سه ورودی data و len و key را دارد.خروجی متد اندیس خانه ای است که key در آن قرار دارد. این خانه در آرایه Data است اگر در آرایه وجود نداشت اندیس را -1 قرار می‌دهیم و return می‌کنیم.

تست برنامه جستجوی خطی در سی پلاس پلاس

برای تست کدهای بالا، کد main زیر را بزنید:

int main() {

    int data[] = { 5, 4, 8, 22, 56, 32, 24 };

    int index = LinearSearch(data, 7, 32);



    if (index >= 0) {

         cout << "index of key " << index << endl;

    } else {

         cout << "key not found in array" << endl;

    }



    return 0;

}

در کد بالا ما یک آرایه data و یک key برای پیدا کردن در آرایه data ساختیم. سپس متد linearsearch را صدا زدیم و خروجی این متد را در یک متغیر به نام index ریختیم. در آخر نیز این اندیس را چاپ کردیم.

نوشته های مشابه

5 دیدگاه در “جستجوی خطی در سی پلاس پلاس (Linear Search)

  1. mostafa گفت:

    تشكر

  2. araz گفت:

    سلام اگه بخوایم متغیری از ورودی بگیرم باید کجا کد cin اضافه کنم؟

    1. سعید غریبی گفت:

      سلام. باید در قسمت main متغیر data رو از ورودی بگیرید.

  3. roha گفت:

    سلام اگر این جست و جو رو برای کاراکتر بخوایم نبویسیم چطور میشه

    1. سعید غریبی گفت:

      سلام. برای جست جوی یک رشته درون یک متن از الگوریتم های دیگری مثل Rabin–Karp یا … استفاده می شود.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *