|
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
البحث الخطي:
تعتمد طريقة البحث الخطي على مقارنة كل عنصر من عناصر المصفوفة مع القيمة التي يراد البحث عنها.
تعمل طريقة البحث الخطي بشكل جيد مع المصفوفات الصغيرة الحجم او المصفوفات الغير مفرزة.ولكن مع المصفوفات الكبيرة
لا تعمل بشكل جيد.
طيب نأخذ مثاال
//Linear Search of an Array #include <iostream> using namespace std; int linear (int[],int,int); int main() { const int arraySize=100; int a[arraySize], searchkey, elemnt; for (int i=0; i<arraySize;i++) a[i]= 2 * i; cout<<"Enter Intergr search key:"<<endl; cin>>searchkey; elemnt=linear(a, searchkey,arraySize); if(elemnt != -1) cout<<"Found value in elemnt"<<endl<<elemnt<<endl; else cout<<"Value not found"<<endl; system("pause"); return 0; } int linear(int array[],int key,int size) { for (int n=0;n <size;n++) if (array[n]==key) return n; return -1; }
|
هذا مثال لعملية بحث داخل مصفوفة
int linear (int[],int,int);
|
الجزء الرأسي لتابع لو نلاحظ هنا طريقة تعريفة بأنة سوف يستقبل مصفوفة ...
int a[arraySize], searchkey, elemnt;
|
searchkey يستخدم لحفظ الرقم الذي يراد البحث عنة
elemnt وهو الذي يقووم بأستدعاء الدالة البحث وارجاع ترتيب الرقم المراد البحث عنة داخل المصفوفة.
for (int i=0; i<arraySize;i++) a[i]= 2 * i;
|
هنا يتم اعطاء قيم لعناصر المصفوفة
elemnt=linear(a, searchkey,arraySize);
|
هنا تم استدعاء الدالة وتمرير المصفوفة a
وحجمها arraySize
والرقم المراد البحث عنة searchkey
والان نذهب الى دالة linear
int linear(int array[],int key,int size) { for (int n=0;n <size;n++) if (array[n]==key) return n; return -1; }
|
array ==المصفوفة a
key == searchkey
size==arraySize
وطريقة البحث تتم باستخدام ال for
اتوقع الباقي واضح :-)
| إسم الكاتب |
تاريخ الإضافة |
التقييم / المقيمين |
زيارات الدرس |
| المستشار |
20/09/2008 |
2 / 2 |
1970 |
|