منتدى مصر التقني
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

خوارزمية البحث الخطى Linear Search Algorithm

اذهب الى الأسفل

خوارزمية البحث الخطى  Linear Search Algorithm Empty خوارزمية البحث الخطى Linear Search Algorithm

مُساهمة من طرف زهراء الجمعة يناير 22, 2021 8:20 am

أهلا بكم

فى مقال سابق تعرفنا على مفهوم الخوارزميات بشكل عام واخذنا عدة امثلة عليها واليوم بشكل من التفصيل عن أبسط أنواع #الخوارزميات وهى #خوارزمية البحث الخطي Linear Search Algorithm 

#البحث_الخطي هو أبسط خوارزمية بحث حيث تبحث عن عنصر في قائمة بترتيب تسلسلي. نبدأ من طرف واحد ونتحقق من كل عنصر حتى يتم العثور على العنصر المطلوب

خطوات عمل خوارزمية البحث الخطى :


  1. تبدء الخوارزمية باقصى عنصر على يسار المصفوفة
  2. تقوم بمقارنة العنصر المطلوب ايجادة مع العنصر الحالى فى المصفوفة
  3. اذا لم يكن العنصر الذى نبحث عنه هو نفس العنصر فى المصفوفة تتنقل إلى العنصر التالى فى المصفوفة
  4. اما اذا كان نفس العنصر فبالتالى يرجع البرنامج بindex الذى يعبر عن عن مكان العنصر المطلوب فى المصفوفة


مثال توضيحيى :

البحث الخطي لايجاد العنصر k=1 من المصفوفة التالية :
خوارزمية البحث الخطى  Linear Search Algorithm Linear-search-initial-array

1_ابدأ من العنصر الأول ، قارن k العنصر المطلوب ايجادة مع العنصر الحالى فى المصفوفة
خوارزمية البحث الخطى  Linear Search Algorithm Linear-search-comparisons
2_إذا تم العثور على قيمة k ، فقم بإرجاع الفهرس
خوارزمية البحث الخطى  Linear Search Algorithm Linear-search-found
3_غير ذلك قم بإرجاع Element not found

خوارزمية البحث الخطي :

تكتب خوارزمية البحث الخطي على النحو التالى :
الكود:
LinearSearch(array, key)
  for each item in the array
    if item == value
      return its index

تنفيذ خوارزمية البحث الخطي بلغة C :
الكود:
// Linear Search in C

#include <stdio.h>

int search(int array[], int n, int x) {
 
  // Going through array sequencially
  for (int i = 0; i < n; i++)
    if (array[i] == x)
      return i;
  return -1;
}

int main() {
  int array[] = {2, 4, 0, 1, 9};
  int x = 1;
  int n = sizeof(array) / sizeof(array[0]);

  int result = search(array, n, x);

  (result == -1) ? printf("Element not found") : printf("Element found at index: %d", result);
}

تنفيذ خوارزمية البحث الخطي بلغة ++C :
الكود:
// Linear Search in C++

#include <iostream>
using namespace std;

int search(int array[], int n, int x) {

  // Going through array sequencially
  for (int i = 0; i < n; i++)
    if (array[i] == x)
      return i;
  return -1;
}

int main() {
  int array[] = {2, 4, 0, 1, 9};
  int x = 1;
  int n = sizeof(array) / sizeof(array[0]);

  int result = search(array, n, x);

  (result == -1) ? cout << "Element not found" : cout << "Element found at index: " << result;
}

تنفيذ خوارزمية البحث الخطي بلغة الجافا :
الكود:
// Linear Search in Java

class LinearSearch {
  public static int linearSearch(int array[], int x) {
  int n = array.length;

  // Going through array sequencially
  for (int i = 0; i < n; i++) {
    if (array[i] == x)
    return i;
  }
  return -1;
  }

  public static void main(String args[]) {
  int array[] = { 2, 4, 0, 1, 9 };
  int x = 1;

  int result = linearSearch(array, x);

  if (result == -1)
    System.out.print("Element not found");
  else
    System.out.print("Element found at index: " + result);
  }
}
زهراء
زهراء
........
........

تاريخ التسجيل : 18/02/2011
المساهمات : 436
النقاط : 762
التقيم : 64
الدولة : مصر
الجنس : انثى

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة

ََ

مواضيع ذات صلة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى