دورة مصغرة للخوارزميات - [ الدرس 2 ] - خوارزمية البحث التسلسلي linearSearchط¢ط®ط±
ط§ظ„طµظپط­ط©
FayCaLMegris

  • ط§ظ„ظ…ط´ط§ط±ظƒط§طھ:
    9721
  •  ظ…طھطµظ„ ط§ظ„ط¢ظ†
مشرف عالم البرمجة وملحقاتها
FayCaLMegris

مشرف عالم البرمجة وملحقاتها
ط§ظ„ظ…ط´ط§ط±ظƒط§طھ: 9721
 ظ…طھطµظ„ ط§ظ„ط¢ظ†
ظ…ط¹ط¯ظ„ ط§ظ„ظ…ط´ط§ط±ظƒط§طھ ظٹظˆظ…ظٹط§: 2.8
ط§ظ„ط£ظٹط§ظ… ظ…ظ†ط° ط§ظ„ط¥ظ†ط¶ظ…ط§ظ…: 3474
  • 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

  • ط§ظ„ظ…ط´ط§ط±ظƒط§طھ:
    9721
  •  ظ…طھطµظ„ ط§ظ„ط¢ظ†
مشرف عالم البرمجة وملحقاتها
FayCaLMegris

مشرف عالم البرمجة وملحقاتها
  • ط±ط¯ ظ…ط«ط¨طھ
  • 12:55 - 2024/09/21
رد محجوز لأي أضافة او تعديل علي الدرس او زيادة

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

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

  • ط§ظ„ظ…ط´ط§ط±ظƒط§طھ: 15578
    ظ†ظ‚ط§ط· ط§ظ„طھظ…ظٹط²: 11413
عضو في لجنة تطوير برنامج المنتديات
مشرف سابق
د عبد الرحمن

عضو في لجنة تطوير برنامج المنتديات
مشرف سابق
ط§ظ„ظ…ط´ط§ط±ظƒط§طھ: 15578
ظ†ظ‚ط§ط· ط§ظ„طھظ…ظٹط²: 11413
ظ…ط¹ط¯ظ„ ط§ظ„ظ…ط´ط§ط±ظƒط§طھ ظٹظˆظ…ظٹط§: 3
ط§ظ„ط£ظٹط§ظ… ظ…ظ†ط° ط§ظ„ط¥ظ†ط¶ظ…ط§ظ…: 5210
  • 19:31 - 2024/09/21
السلام عليكم،،

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

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

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

0📊0👍0👏0👌0🧠
treceratops363
  • ط§ظ„ظ…ط´ط§ط±ظƒط§طھ: 86
    ظ†ظ‚ط§ط· ط§ظ„طھظ…ظٹط²: 5
ط¹ط¶ظˆ ظ…ط¨طھط¯ط¦
treceratops363
ط¹ط¶ظˆ ظ…ط¨طھط¯ط¦
ط§ظ„ظ…ط´ط§ط±ظƒط§طھ: 86
ظ†ظ‚ط§ط· ط§ظ„طھظ…ظٹط²: 5
ظ…ط¹ط¯ظ„ ط§ظ„ظ…ط´ط§ط±ظƒط§طھ ظٹظˆظ…ظٹط§: 0
ط§ظ„ط£ظٹط§ظ… ظ…ظ†ط° ط§ظ„ط¥ظ†ط¶ظ…ط§ظ…: 2317
  • 22:03 - 2024/10/25
و علي delphi

algo sur delphi 5/7/10

0📊0👍0👏0👌0🧠
FayCaLMegris

  • ط§ظ„ظ…ط´ط§ط±ظƒط§طھ:
    9721
  •  ظ…طھطµظ„ ط§ظ„ط¢ظ†
مشرف عالم البرمجة وملحقاتها
FayCaLMegris

مشرف عالم البرمجة وملحقاتها
ط§ظ„ظ…ط´ط§ط±ظƒط§طھ: 9721
 ظ…طھطµظ„ ط§ظ„ط¢ظ†
ظ…ط¹ط¯ظ„ ط§ظ„ظ…ط´ط§ط±ظƒط§طھ ظٹظˆظ…ظٹط§: 2.8
ط§ظ„ط£ظٹط§ظ… ظ…ظ†ط° ط§ظ„ط¥ظ†ط¶ظ…ط§ظ…: 3474
  • 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.1
ط§ظ„ط£ظٹط§ظ… ظ…ظ†ط° ط§ظ„ط¥ظ†ط¶ظ…ط§ظ…: 3100
  • 13:55 - 2024/11/05
شكرا شكرااااااااا
0📊0👍0👏0👌0🧠
genni19
  • ط§ظ„ظ…ط´ط§ط±ظƒط§طھ: 1378
    ظ†ظ‚ط§ط· ط§ظ„طھظ…ظٹط²: 5555
ط¹ط¶ظˆ ظ…طھط·ظˆط±
genni19
ط¹ط¶ظˆ ظ…طھط·ظˆط±
ط§ظ„ظ…ط´ط§ط±ظƒط§طھ: 1378
ظ†ظ‚ط§ط· ط§ظ„طھظ…ظٹط²: 5555
ظ…ط¹ط¯ظ„ ط§ظ„ظ…ط´ط§ط±ظƒط§طھ ظٹظˆظ…ظٹط§: 0.6
ط§ظ„ط£ظٹط§ظ… ظ…ظ†ط° ط§ظ„ط¥ظ†ط¶ظ…ط§ظ…: 2345
  • 13:55 - 2024/11/06
شكرا جزيلا ,اتمنى لو تتفضل وتضيف كيف نكتب الخوارزميات فهناك شكل برنامج ,شكل مخطط flow chart….الخ هكذا اعتقد الدورة ستكون أغنى ,فصراحة حتى انا ونسيتهم وهذه فرصة لأعيد ترسيم المفاهيم في رأسي

تحياتي

0📊0👍0👏0👌0🧠

ط§ظ„ط±ط¯ ط¹ظ„ظ‰ ط§ظ„ظ…ظˆط§ط¶ظٹط¹ ظ…طھظˆظپط± ظ„ظ„ط£ط¹ط¶ط§ط، ظپظ‚ط·.

ط§ظ„ط±ط¬ط§ط، ط§ظ„ط¯ط®ظˆظ„ ط¨ط¹ط¶ظˆظٹطھظƒ ط£ظˆ ط§ظ„طھط³ط¬ظٹظ„ ط¨ط¹ط¶ظˆظٹط© ط¬ط¯ظٹط¯ط©.

  • ط¥ط³ظ… ط§ظ„ط¹ط¶ظˆظٹط©: 
  • ط§ظ„ظƒظ„ظ…ط© ط§ظ„ط³ط±ظٹط©: 

 دورة مصغرة للخوارزميات - [ الدرس 2 ] - خوارزمية البحث التسلسلي linearSearchط¨ط¯ط§ظٹط©
ط§ظ„طµظپط­ط©