المحتوى:2. مقدمة في الرياضيات 3. خوارزميات الترتيب المختلفة 4. بنى المعطيات الأساسية 5. تقنيات تصميم و تحليل الخوارزميات 6. بنى معطيات متقدمة
1. مقدمة:دعونا نبدأ بتعريف ماهو البرنامج الجيد. هناك مواصفات محددة يجب أن يُحققها البرنامج حتى نقول أنه جيد وهي:
كما سنرى لاحقاً فإن الحصول على البرنامج الصحيح (1) و الفعّال (2) يمكن تحقيقه باستخدام الخوارزميات و بنى المعطيات المناسبة (و هذا ما يميز المبرمجين المحترفين عن هواة البرمجة.) الصفات 5،4،3 من صفات البرنامج الجيد لم تكن واضحة للمختصين في البدايات حين كان علم البرمجة في المهد صغيراً ( كثيرون يعتقدون أنه ما زال في المهد و يقولون أن علم برمجة الكومبيوتر لم ينضج بعد) فقد كان إهتمام أوائل المبرمجين منصب على حل المشكلة و كانوا يستخدمون ما يستخدمه الآن هواة المبرمجين مما يدعى clever coding أو التدوين الذكي للبرامج حيث كان يتم بهدف الحصول على برنامج سريع و صغير الحجم دمج بعض التعليمات مع بعضها البعض بطريقة يصعب قراءتها أو فهمها أحياناً حتى من قبل من قام بكتابة البرنامج إذا أراد بعد فترة من الزمن إعادة قراءة البرنامج لسبب ما. و لكن التجارب العملية أثبتت أهمية هذه الصفات. لنأخذ على سبيل المثال مشكلة العام 2000 الشهيرة نشأت هذه المشكلة نتيجة قيام أوائل المبرمجين بتسجيل الخانتين الأخيرتين من التاريخ فقط بهدف إختصار حجم الذاكرة المطلوبة و لهم عذرهم فقد كانت أسعار وسائل التخزين الألكتروني غالية الثمن. إذاً حل هذه المشكلة يكون و بكل بساطة بتعديل طريقة حفظ التاريخ حتى تقبل الخانات الأربعة و تعديل التعليمات التي تتعامل مع التاريخ. هذا صحيح من الناحية النظرية و لكن الصعوبة عملياً تكمن في صعوبة قراءة و فحص و تعديل البرامج التي تعاني من هذه المشكلة و التي تمت كتابتها دون الأخذ بعين الإعتبار القواعد السابقة. بعد هذه المقدمة عن البرنامج الجيد دعونا نبدء الحديث عن الخوارزميات و التي تشكل موضوعنا الأساسي. بإختصار يمكننا القول أن الخوارزمية هي: طريقة يمكن أن تستخدم لجعل الكومبيوتر يقوم بحل مشكلة ما. و بشكل أكثر دقة نقول:
بالطبع قد نحتاج تزويد الخوارزمية ببعض المعطيات التي تحتاج لها الخوارزمية لحل المشكلة و تشكل هذه المعطيات دخل الخوارزمية، و بالطبع فإنها ستنتج في النهاية قيمة أو أكثر تمثل خرج الخوارزمية. ![]()
بحث مخصص
|