العثور على عدد من التكرارات
إنشاء برنامج للعثور على عدد التكرارات لعنصر معين في القائمة. سيتم إثباتك ببيانات اختبار لاختبار الحل الخاص بك وكذلك حلنا للمشكلة
خوارزميات البحث
يُطلق على البحث الخطي أيضًا اسم خوارزمية البحث التسلسلي. إنها خوارزمية تستخدم للبحث عن عنصر في قائمة أو مجموعة من العناصر مرتبة أو غير مصنفة.
ابدأ بالمرور عبر المصفوفة ثم قارن العنصر الذي نبحث عنه مع عنصر القائمة، إذا وجدنا العنصر الخاص بنا، فإننا نعيد فهرس ذلك العنصر إذا لم يتم العثور على العنصر، ثم نكرر العملية حتى نجد العنصر أو نصل إلى نهاية القائمة. إذا وصلنا إلى نهاية القائمة ولم يتم العثور على العنصر نرجع -1 أو "لم يتم العثور على العنصر"
for idx = 0 to list size - 1
if element = list[idx] return idx
else contiune
// if not found
return -1;
المميزات
يمكننا استخدام الخوارزمية للبحث في قائمة مرتبة أو غير مصنفة. تتمتع الخوارزمية أيضًا بتعقيد مساحة ممتاز لـ O (1).
العيوب
عيب هذه الخوارزمية هو عندما نستخدمها على مجموعة بيانات كبيرة أو قائمة كبيرة من العناصر لأننا نمر عبر جميع عناصر مجموعة البيانات أو القائمة. أسوأ الحالات، على سبيل المثال إذا كان لدينا 10 ملايين عنصر من البيانات وكان العنصر الذي نبحث عنه هو العنصر الأخير، فعلينا الانتظار حتى نصل إلى العنصر الأخير بدءًا من 0. (التعقيد الزمني O(n))
تعقيد الوقت
أفضل تعقيد زمني هو O(1). يحدث هذا عندما يكون العنصر الذي نبحث عنه هو العنصر الأول في القائمة متوسط التعقيد الزمني هو O(n) لأنه يتعين علينا المرور عبر عدد n من العناصر للعثور على العنصر أسوأ تعقيد زمني هو O(n) لأنه إذا كان العنصر الذي نبحث عنه هو العنصر الأخير أو لم يتم العثور عليه، فسنقوم بالتكرار خلال القائمة بأكملها
تعقيد مساحة الذاكرة
التعقيد المكاني لهذه الخوارزمية هو O(1) لأن لدينا متغير واحد فقط
متى تستخدم هذه الخوارزمية
يمكننا استخدام هذه الخوارزمية إذا كانت لدينا قائمة غير مصنفة لأننا نمر عبر عنصر القائمة تلو الآخر ولا يهم إذا تم فرز القائمة أم لا. يمكننا أيضًا استخدامه لمجموعات البيانات الصغيرة أو القوائم الصغيرة. وأخيرا يمكننا استخدامه في قائمة مرتبطة.
function linear(arr,element){
for(let i = 0; i < arr.length ; i++){
const currentElement = arr[i];
if(element === currentElement){
return i;
}
}
return -1;
}
إنشاء برنامج للعثور على عدد التكرارات لعنصر معين في القائمة. سيتم إثباتك ببيانات اختبار لاختبار الحل الخاص بك وكذلك حلنا للمشكلة
إنشاء برنامج للعثور على أصغر أو أكبر عنصر في القائمة باستخدام خوارزمية البحث الخطي. سنقدم قائمة بالعناصر