ما هي الخوارزمية؟ الخصائص والأنواع وكيفية كتابتها

أحمد علي
ما هي الخوارزمية
جدول المحتويات

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

ما هي الخوارزمية؟

  • الخوارزمية هي مجموعة من الأوامر التي يجب أن يتبعها الكمبيوتر لإجراء العمليات الحسابية أو عمليات حل المشكلات الأخرى.
  • وفقًا لتعريفها الرسمي ، فإن الخوارزمية هي مجموعة محدودة من التعليمات التي يتم تنفيذها بترتيب معين لأداء مهمة معينة. 
  • إنه ليس البرنامج أو الكود بأكمله ؛ إنه منطق بسيط لمشكلة يتم تمثيلها كوصف غير رسمي في شكل مخطط انسيابي أو رمز زائف.
  • المشكلة: يمكن تعريف المشكلة على أنها مشكلة في العالم الحقيقي أو مشكلة مثيل في العالم الحقيقي والتي تحتاج إلى تطوير برنامج أو مجموعة من التعليمات الخاصة بها. الخوارزمية هي مجموعة من التعليمات. 
  • الخوارزمية: يتم تعريف الخوارزمية على أنها عملية خطوة بخطوة سيتم تصميمها لحل مشكلة ما.
  • المدخلات: بعد تصميم الخوارزمية ، يتم إعطاء الخوارزمية المدخلات الضرورية والمطلوبة.
  • وحدة المعالجة: سيتم تمرير الإدخال إلى وحدة المعالجة ، مما ينتج عنه الإخراج المطلوب.
  • الإخراج: يُشار إلى نتيجة أو نتيجة البرنامج على أنها الإخراج.

بعد تحديد ماهية الخوارزمية ، ستنظر الآن في خصائص الخوارزمية.

خصائص الخوارزمية

تحتوي الخوارزمية على الخصائص التالية:

  • الإدخال: تتطلب الخوارزمية بعض قيم الإدخال. يمكن إعطاء الخوارزمية قيمة غير 0 كمدخلات.
  • الإخراج: في نهاية الخوارزمية ، سيكون لديك نتيجة واحدة أو أكثر.
  • عدم الغموض: يتم تعريف الخوارزمية المثالية على أنها لا لبس فيها ، مما يعني أن تعليماتها يجب أن تكون واضحة ومباشرة.
  • المحدودية: يجب أن تكون الخوارزمية محدودة. تعني المحدودية في هذا السياق أن الخوارزمية يجب أن تحتوي على عدد محدود من التعليمات ، أي يجب أن تكون التعليمات قابلة للعد.
  • الفعالية: نظرًا لأن كل تعليمات في الخوارزمية تؤثر على العملية الكلية ، يجب أن تكون كافية.
  • استقلالية اللغة: يجب أن تكون الخوارزمية مستقلة عن اللغة ، مما يعني أنه يمكن تنفيذ تعليماتها بأي لغة والحصول على نفس النتائج.

الانتقال في هذا البرنامج التعليمي ما هي الخوارزمية ، سوف تنظر في سبب احتياجك إلى خوارزمية.

لماذا تحتاج خوارزمية؟

تحتاج إلى خوارزميات للأسباب التالية:

قابلية التوسع

يساعد في فهمك لقابلية التوسع. عندما يكون لديك مشكلة كبيرة في العالم الحقيقي ، يجب عليك تقسيمها إلى خطوات صغيرة لتحليلها بسرعة.

أداء

إن العالم الحقيقي يمثل تحديًا للتقسيم إلى خطوات أصغر. إذا كان من السهل تقسيم المشكلة إلى خطوات أصغر ، فهذا يشير إلى أن المشكلة ممكنة.

بعد فهم ما هي الخوارزمية ، ولماذا تحتاج إلى خوارزمية ، سوف تنظر في كيفية كتابة واحدة باستخدام مثال.

كيف تكتب خوارزمية؟

  • لا توجد معايير محددة جيدًا لكتابة الخوارزميات. ومع ذلك ، فهي مشكلة تعتمد على الموارد. لا تُكتب الخوارزميات أبدًا مع وضع لغة برمجة محددة في الاعتبار.
  • كما تعلمون جميعًا ، فإن الإنشاءات البرمجية الأساسية مثل الحلقات مثل do ، for ، while ، تشترك جميع لغات البرمجة في التحكم في التدفق مثل if-else ، وما إلى ذلك. يمكن كتابة خوارزمية باستخدام هذه التركيبات المشتركة.
  • عادةً ما تتم كتابة الخوارزميات بطريقة تدريجية ، ولكن هذا ليس هو الحال دائمًا. كتابة الخوارزمية هي عملية تحدث بعد تحديد مجال المشكلة بشكل جيد. بمعنى ، يجب أن تكون على دراية بمجال المشكلة الذي تعمل على تطوير حل له.

مثال 

الآن ، استخدم مثالاً لتتعلم كيفية كتابة الخوارزميات.

المشكلة: قم بإنشاء خوارزمية تضرب رقمين وتعرض الإخراج.

الخطوة 1 – ابدأالخطوة 2 – التصريح عن ثلاثة أعداد صحيحة x و y و zالخطوة 3 – تحديد قيم x & yالخطوة 4 – اضرب قيم x & yالخطوة 5 – تخزين نتيجة الخطوة 4 إلى zالخطوة 6 – طباعة zالخطوة 7 – توقف

ترشد الخوارزميات المبرمجين إلى كيفية كتابة التعليمات البرمجية. بالإضافة إلى ذلك ، يمكن كتابة الخوارزمية على النحو التالي:

الخطوة 1 – ابدأ مولالخطوة 2 – الحصول على قيم x & yالخطوة 3 – z ← x * yالخطوة 4 – عرض zالخطوة 5 – توقف

في تصميم الخوارزمية وتحليلها ، تُستخدم الطريقة الثانية عادةً لوصف الخوارزمية. يسمح للمحلل بتحليل الخوارزمية مع تجاهل جميع التعريفات غير المرغوب فيها بسهولة. يمكنهم معرفة العمليات التي يتم استخدامها وكيفية تقدم العملية. اختياري لكتابة أرقام الخطوات. لحل مشكلة معينة ، تقوم بإنشاء خوارزمية. يمكن حل المشكلة بعدة طرق.

نتيجة لذلك ، يمكن اشتقاق العديد من خوارزميات الحل لمشكلة معينة. الخطوة التالية هي تقييم خوارزميات الحل المقترحة وتنفيذ الحل الأنسب.

أثناء تقدمك في هذا البرنامج التعليمي “ما هي الخوارزمية” ، ستتعرف على بعض مكونات الخوارزمية.

عوامل الخوارزمية

فيما يلي العوامل التي يجب مراعاتها عند تصميم خوارزمية:

  • نمطية: تم تصميم هذه الميزة بشكل مثالي للخوارزمية إذا واجهتك مشكلة وقسمتها إلى وحدات صغيرة – صغيرة أو خطوات صغيرة – صغيرة ، وهو تعريف أساسي للخوارزمية.
  • الصواب: يتم تعريف صحة الخوارزمية عندما تنتج المدخلات المعطاة المخرجات المرغوبة ، مما يشير إلى أن الخوارزمية تم تصميمها بشكل صحيح. تم الانتهاء من تحليل الخوارزمية بشكل صحيح.
  • قابلية الصيانة: تعني أنه يجب تصميم الخوارزمية بطريقة منظمة ومباشرة بحيث لا يتم إجراء تغييرات كبيرة على الخوارزمية عند إعادة تعريف الخوارزمية.
  • الوظيفة: تأخذ في الاعتبار الخطوات المنطقية المختلفة لحل مشكلة العالم الحقيقي.
  • المتانة: تشير المتانة إلى قدرة الخوارزمية على تحديد مشكلتك بوضوح.
  • سهل الاستخدام: إذا كان من الصعب فهم الخوارزمية ، فلن يشرحها المصمم للمبرمج.
  • البساطة: إذا كانت الخوارزمية بسيطة ، فمن السهل فهمها.
  • القابلية للتوسعة: يجب أن تكون الخوارزمية الخاصة بك قابلة للتوسيع إذا أراد مصمم خوارزمية أو مبرمج آخر استخدامها.

سترى الآن سبب أهمية الخوارزمية بعد فهم بعض مكوناتها.

أهمية الخوارزمية

هناك نوعان من العوامل التي تعتبر فيها الخوارزمية أساسية:

الأهمية النظرية

عندما تواجه مشكلة في العالم الحقيقي ، يجب عليك تقسيمها إلى وحدات أصغر. لتفكيك المشكلة ، يجب أولاً أن تفهم كل جوانبها النظرية.

أهمية عملية

كما تعلمون جميعًا ، لا يمكن إكمال النظرية بدون تطبيق عملي. نتيجة لذلك ، يمكن النظر إلى أهمية الخوارزميات نظريًا وعمليًا.

أثناء تقدمك في هذا البرنامج التعليمي “ما هو الخوارزمية” ، سترى مناهج الخوارزمية.

مناهج الخوارزمية

بعد النظر في الأهمية النظرية والعملية لتصميم خوارزمية ، تم استخدام الأساليب التالية:

  • خوارزمية القوة الغاشمة

تستخدم هذه الخوارزمية الهيكل المنطقي العام لتصميم خوارزمية. يطلق عليه أيضًا خوارزمية بحث شاملة لأنها تستنفد جميع الاحتمالات لتوفير الحل المطلوب. هناك نوعان من هذه الخوارزميات:

  1. التحسين: البحث عن جميع الحلول الممكنة لمشكلة ما ثم اختيار أفضلها ، سينتهي إذا عُرف أفضل حل.
  2. التضحية: سيتوقف بمجرد إيجاد الحل الأفضل.
  • فرق تسد

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

  • خوارزمية الجشع

هذا نموذج خوارزمية يجعل أفضل خيار ممكن في كل تكرار على أمل اختيار الحل الأفضل. إنه سهل الإعداد وله وقت تنفيذ أقصر. ومع ذلك ، هناك حالات قليلة جدًا يكون فيها هذا هو الحل الأفضل.

  • البرمجة الديناميكية

يحسن كفاءة الخوارزمية من خلال تخزين النتائج الوسيطة. يمر بخمس خطوات للعثور على أفضل حل للمشكلة:

  1.  يقسم المشكلة إلى مشاكل فرعية لإيجاد الحل الأفضل.
  2. بعد تقسيم المشكلة إلى مشكلات فرعية ، تجد الحل الأفضل من هذه المشكلات الفرعية.
  3. الحفظ هو عملية تخزين نتائج المشاكل الفرعية.
  4. أعد استخدام النتيجة لمنع إعادة احتسابها لنفس المشكلات الفرعية.
  5. أخيرًا ، يحسب ناتج البرنامج المعقد.
  • خوارزمية الفرع والربط

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

  • الخوارزمية العشوائية

كما هو الحال مع الخوارزمية القياسية ، لديك مدخلات ومخرجات محددة مسبقًا. تحتوي الخوارزميات الحتمية على مجموعة محددة من المعلومات والنتائج المطلوبة وتتبع بعض الخطوات الموضحة. إنها أكثر كفاءة من الخوارزميات غير الحتمية.

  • التراجع

إنه إجراء حسابي يتكرر ويتجاهل الحل إذا كان لا يفي بقيود المشكلة.

بعد فهمك لماهية الخوارزمية ومقارباتها ، ستنظر الآن في تحليل الخوارزمية.

تحليل الخوارزمية

يمكن فحص الخوارزمية على مستويين: قبل وبعد إنشائها. تحليلا الخوارزمية كالتالي:

  • التحليل الأولي

في هذا السياق ، يشير التحليل المسبق إلى التحليل النظري للخوارزمية التي يتم إجراؤها قبل تنفيذ الخوارزمية. قبل تنفيذ الخوارزمية ، يمكن مراعاة عوامل مختلفة مثل سرعة المعالج ، والتي لا تؤثر على التنفيذ.

  • التحليل الخلفي

في هذا السياق ، يشير التحليل اللاحق إلى تحليل عملي للخوارزمية. يتم تنفيذ الخوارزمية في أي لغة برمجة لإجراء البحث التجريبي. يحدد هذا التحليل مقدار وقت التشغيل والمساحة المطلوبة.

بالانتقال إلى هذا البرنامج التعليمي “ما هي الخوارزمية” ، ستنظر الآن في مدى تعقيد الخوارزمية.

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

يمكن قياس أداء الخوارزمية بطريقتين:

تعقيد الوقت

يُطلق على مقدار الوقت المطلوب لإكمال تنفيذ الخوارزمية اسم تعقيد الوقت. يتم استخدام تدوين O الكبير لتمثيل تعقيد وقت الخوارزمية. الترميز المقارب لوصف تعقيد الوقت ، في هذه الحالة ، هو تدوين O كبير. يتم حساب التعقيد الزمني بشكل أساسي عن طريق حساب عدد الخطوات المطلوبة لإكمال التنفيذ. دعونا نلقي نظرة على مثال على تعقيد الوقت.

مول = 1 ؛// لنفترض أن عليك حساب مضاعفة عدد n.  من أجل i = 1 إلى n  مول = مول * 1 ؛  // عندما تنتهي الحلقة ، فإن mul يحتفظ بضرب الأعداد n  عودة مول  

التعقيد الزمني لبيان الحلقة في الكود السابق هو على الأقل n ، ومع تصاعد قيمة n ، كذلك يزداد تعقيد الوقت. بينما تعقيد الكود ، أي إرجاع mul ، سيكون ثابتًا لأن قيمته لا تعتمد على أهمية n وستوفر النتيجة في خطوة واحدة. يعتبر التعقيد الأسوأ بشكل عام لأنه يمثل الحد الأقصى للوقت المطلوب لأي حجم إدخال معين.

تعقيد الفضاء

يُطلق على مقدار المساحة التي تتطلبها الخوارزمية لحل مشكلة وإنتاج مخرجات اسم تعقيدها المكاني. يتم التعبير عن تعقيد الفضاء ، مثل تعقيد الوقت ، في تدوين O الكبير.

المساحة مطلوبة للخوارزمية للأسباب التالية:

  1. لتخزين تعليمات البرنامج.
  2. لتخزين مسار القيم الثابتة.
  3. لتخزين مسار القيم المتغيرة.
  4. لتخزين مسار استدعاءات الوظائف ، وعبارات القفز ، وما إلى ذلك.

تعقيد الفضاء = مساحة إضافية + حجم الإدخال

أخيرًا بعد فهم ما هي الخوارزمية وتحليلها ومقارباتها ، ستنظر في أنواع مختلفة من الخوارزميات.

أنواع الخوارزميات

هناك نوعان من الخوارزميات:

  • بحث الجوري
  • فرز الخوارزمية

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

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

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

  • البحث الخطي

البحث الخطي عبارة عن خوارزمية بسيطة تبدأ في البحث عن عنصر أو قيمة في بداية المصفوفة وتستمر حتى لا يتم العثور على العنصر المطلوب. يقارن العنصر المراد البحث عنه مع جميع العناصر في المصفوفة ؛ إذا تم العثور على تطابق ، يتم إرجاع فهرس العنصر ؛ وإلا ، يتم إرجاع -1. يمكن تطبيق هذه الخوارزمية على قائمة لم يتم فرزها.

  • بحث ثنائي

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

فرز الخوارزمية

تقوم خوارزميات الفرز بإعادة ترتيب العناصر في مصفوفة أو بنية بيانات معينة بترتيب تصاعدي أو تنازلي. عامل المقارنة يقرر الترتيب الجديد للعناصر.

الآن بعد أن أكملت البرنامج التعليمي حول “ما هي الخوارزمية” ، سوف تلخص ما تعلمته حتى الآن.

الخطوات التالية

في هذا البرنامج التعليمي ، تعلمت ما هي الخوارزمية وما هي خصائصها. بعد ذلك ، ألقيت نظرة على سبب احتياجك للخوارزميات ، وكيفية كتابتها ، ومدى أهميتها. بعد أن تعرفت على مناهج وعوامل الخوارزمية ، تعرفت على مدى تعقيد الخوارزميات وأنواعها.

لنفترض أنك تبحث عن دراسة أكثر شمولاً تتجاوز تطوير البرمجيات وتغطي لغات البرمجة وقدراتها الأكثر طلبًا اليوم. في هذه الحالة ، يعد برنامج Simplilearn’s Full Stack Java Developer Master هو الخيار الصحيح لك. استكشف برنامج المعسكر التدريبي المعترف به عالميًا وكن مطمئنًا إلى أن إكمال هذا سيكون أذكى خطوة يمكنك القيام بها للدخول في مهنة تطوير البرمجيات والنمو فيها.

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

شارك المقال:

مقالات ذات صلة

0 0 تصويتات
قيم المقالة
guest
0 تعليقات
Inline Feedbacks
عرض جميع التعليقات