دورة مصغرة للخوارزميات - [ الدرس 2 ] - خوارزمية البحث التسلسلي linearSearchآخر
الصفحة
FayCaLMegris

  • المشاركات:
    9660
مشرف عالم البرمجة وملحقاتها
مشرف العملات الرقمية
FayCaLMegris

مشرف عالم البرمجة وملحقاتها
مشرف العملات الرقمية
المشاركات: 9660
معدل المشاركات يوميا: 2.8
الأيام منذ الإنضمام: 3457
  • 12:54 - 2024/09/21

1

2

السلام عليكم ورحمة الله وبركاته

ننطلق اليوم في دورتنا التي تشرح علوم الخوارزميات في البرمجة ونبدء بخوارزميتنا الاولي

دورة مصغرة للخوارزميات - [ الدرس 2 ] - خوارزمية البحث التسلسلي linearSearch

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

1.بعض المفايهم بخصوص الخوارزمية

2.أمثلة واقعية

3.تطبيق الخوارزمية بلغات مختلفة

1.تعقيد الخوارزمية

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

1.بعض المفاهيم بخصوص الخوارزمية

خوارزمية linearSearch أو البحث التسلسلي هي واحدة من الخوارزميات البحث المنتشرة بكثرة في علوم الحاسوب

حيث تقوم هاته الخوارزمية بالبحث عن قيمة ما نصية رقمية أو أي كانت في مصفوفة array او قائمة حيث لا تشترط ترتيب المدخلات unordored array

فمثلا لدينا هاته القيم في مصفوفة A ذات الحجم N

A = [17, 3, 45, 8, 29, 12, 56, 4, 23, 9, 31, 5, 48, 27, 1, 15, 36, 19, 7, 50]

الـ N هنا 20 ونريد البحث عن القيمة 31 تقوم الخوارزمية بالبحث عنصر بعدد عنصر on by on الي ان تجد العنصر المطلوب

فعند تنفيذ ونجاح الخوارزمية فأنها ترجع لنا الـ 10 ذالك لانها تقع في الموقع الـ10 من المصفوفة A مذا لو فشلت ؟ فأنها تعيد -1 أي فشل العملية

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

2.أمثلة واقعية

تخيل أنك ذهبت إلى مكتبة تحتوي على كتب غير مرتبة على الرفوف بشكل عشوائي، وتريد العثور على كتاب بعنوان "البرمجة للمبتدئين".

كيفية تطبيق البحث الخطي في هذه الحالة:
تقف أمام رف الكتب وتبدأ بالنظر إلى أول كتاب على الرف. تقرأ عنوانه:إذا كان عنوان الكتاب هو "البرمجة للمبتدئين"، فأنت وجدت الكتاب!
إذا لم يكن الكتاب هو المطلوب، تنتقل إلى الكتاب الثاني. تستمر في الانتقال من كتاب إلى آخر، تقرأ عنوان كل كتاب.في كل مرة تقارن العنوان المطلوب مع العنوان الحالي:
إذا وجدت الكتاب في أي وقت، تتوقف عن البحث.إذا انتهيت من جميع الكتب دون العثور على الكتاب المطلوب، تستنتج أن الكتاب غير موجود على الرف.


best case
إذا كان الكتاب المطلوب هو أول كتاب على الرف، فسوف تجده فورًا دون الحاجة للبحث أكثر.
worst case
إذا كان الكتاب المطلوب هو آخر كتاب على الرف أو غير موجود على الإطلاق، فسيتعين عليك فحص كل الكتب حتى تصل إلى نهاية الرف.
العلاقة بخوارزمية البحث الخطي:
البحث الخطي يعمل بنفس الطريقة: يبدأ من أول عنصر في المصفوفة أو القائمة ويمر عبر جميع العناصر واحدًا تلو الآخر حتى يجد العنصر المطلوب أو ينتهي البحث.
هذا النوع من البحث مفيد عندما لا تكون العناصر مرتبة، وهو مشابه جدًا لما تفعله عندما تبحث عن كتاب في مكتبة بدون ترتيب محدد.
ملخص:
في هذا المثال الواقعي، المكتبة تمثل المصفوفة، والكتب غير المرتبة تمثل العناصر داخل المصفوفة.
عملية البحث عن الكتاب تمثل البحث الخطي الذي يمر على كل عنصر واحدًا تلو الآخر حتى تجد ما تبحث عنه.

كان هذا مثال واقعي عن كيفية استعمال الخوارزمية لذا دعنا نحول كل الذي قلنا الي لغة نستطيع قهمها

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

الـ Pseudocode

هذا هو الـ البسودوكود الخاص بالخوارزمية

نبدأ بتطبيق أولي خوارزمياتنا بلغات برمجية لنري مخرجات الخوارزمية في الأسفل الكود الخاص بالخوارزمية بلغة السي ++

الخوارزمية بلغة الـ ++C

مخرجات البرنامج programe output

بأمكانكم التجريب بأدخال قيم غير متواجدة في المصفوفة

الكود كامل مرفوع هلي موقع Pastebin

linearSeatch - Pastebin.com

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

الجافا سكربت JS

أستعملنا معها الـ HTML

linearS - Pastebin.com

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

PHP

linearSearch_startimes - Pastebin.com

------------------------------------------------------------------------------------------------------------------------------------------------------------------------


تعقيد الخوارزمية time Complexity


في أسوء الأحوال worst case فتعقيد الخوارزمية هو O(N) لأنها ستحتاج لفحص كل العناصر N

في أحسن الاحوال best case O(1) قد يكون العنصر المكلوب البحث عنه في اولي عناصر المصفوفة

في متوسط الحالة Average case قد تجد العنصر المطلوب موجود بشكل عشوائي في منتصف المصفوفة مثلا حينها فأن الخوارزمية ستعمل N/2

أخيرا :

تعقيد هذه الخوارزمية يعتمد على عدد العناصر في المصفوفة N في حالتنا 20 لأن الخوارزمية تحتاج لفحص كل عنصر على حدة، مما يجعلها خطية (O(n)) في معظم الحالات.

2

1📊1👍0👏0👌0🧠
FayCaLMegris

  • المشاركات:
    9660
مشرف عالم البرمجة وملحقاتها
مشرف العملات الرقمية
FayCaLMegris

مشرف عالم البرمجة وملحقاتها
مشرف العملات الرقمية
  • رد مثبت
  • 12:55 - 2024/09/21
رد محجوز لأي أضافة او تعديل علي الدرس او زيادة

أي استفسار شارك أسئل شكرا لكم

1📊1👍0👏0👌0🧠
د عبد الرحمن

  • المشاركات:
    15578
مشرف مشاكل الحاسب والشبكات
مشرف عالم البرمجة وملحقاتها
عضو في لجنة تطوير برنامج المنتديات
د عبد الرحمن

مشرف مشاكل الحاسب والشبكات
مشرف عالم البرمجة وملحقاتها
عضو في لجنة تطوير برنامج المنتديات
المشاركات: 15578
معدل المشاركات يوميا: 3
الأيام منذ الإنضمام: 5193
  • 19:31 - 2024/09/21
السلام عليكم،،

ما شاء الله عليك اخي فيصل،، شرح ممتاز،،

ان شاء الله يستفيد الجميع،، في ميزان الحسنات ان شاء الله ،،

تثبيت + نجمة + هدية متواضعة،،

0📊0👍0👏0👌0🧠
treceratops363
  • المشاركات: 86
    نقاط التميز: 5
عضو مبتدئ
treceratops363
عضو مبتدئ
المشاركات: 86
نقاط التميز: 5
معدل المشاركات يوميا: 0
الأيام منذ الإنضمام: 2300
  • 22:03 - 2024/10/25
و علي delphi

algo sur delphi 5/7/10

0📊0👍0👏0👌0🧠
FayCaLMegris

  • المشاركات:
    9660
مشرف عالم البرمجة وملحقاتها
مشرف العملات الرقمية
FayCaLMegris

مشرف عالم البرمجة وملحقاتها
مشرف العملات الرقمية
المشاركات: 9660
معدل المشاركات يوميا: 2.8
الأيام منذ الإنضمام: 3457
  • 22:20 - 2024/10/25

إقتباس لمشاركة: @treceratops363 19:03:43 - 2024/10/25

و علي delphi

algo sur delphi 5/7/10

نفس الخطوات لكن تغيير بسيط في Syntax Code

0📊0👍0👏0👌0🧠
belkhir 1983

  • المشاركات: 9709
    نقاط التميز: 34107
عضو أساسي
belkhir 1983

عضو أساسي
المشاركات: 9709
نقاط التميز: 34107
معدل المشاركات يوميا: 3.2
الأيام منذ الإنضمام: 3082
  • 13:55 - 2024/11/05
شكرا شكرااااااااا
0📊0👍0👏0👌0🧠
genni19
  • المشاركات: 1376
    نقاط التميز: 5540
عضو متطور
genni19
عضو متطور
المشاركات: 1376
نقاط التميز: 5540
معدل المشاركات يوميا: 0.6
الأيام منذ الإنضمام: 2328
  • 13:55 - 2024/11/06
شكرا جزيلا ,اتمنى لو تتفضل وتضيف كيف نكتب الخوارزميات فهناك شكل برنامج ,شكل مخطط flow chart….الخ هكذا اعتقد الدورة ستكون أغنى ,فصراحة حتى انا ونسيتهم وهذه فرصة لأعيد ترسيم المفاهيم في رأسي

تحياتي

0📊0👍0👏0👌0🧠

الرد على المواضيع متوفر للأعضاء فقط.

الرجاء الدخول بعضويتك أو التسجيل بعضوية جديدة.

  • إسم العضوية: 
  • الكلمة السرية: 

 دورة مصغرة للخوارزميات - [ الدرس 2 ] - خوارزمية البحث التسلسلي linearSearchبداية
الصفحة