Data Structures 2
TeX

Data Structures 2

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

مشروع أكاديمي لمادة هياكل البيانات II. يقوم باختبار خمس خوارزميات ترتيب بلغة C عبر أحجام إدخال متعددة، ثم يُنشئ رسومًا بيانية للأداء باستخدام Python/matplotlib.

تقرير تم إنشاؤه بواسطة كود Python يصف نتائج الخوارزميات.

الخوارزميات

الخوارزمية الحالة المتوسطة أسوأ حالة
Bubble Sort O(n²) O(n²)
Selection Sort O(n²) O(n²)
Insertion Sort O(n²) O(n²)
Quick Sort O(n log n) O(n²)
Heap Sort O(n log n) O(n log n)

آلية العمل

  1. برنامج C (main.c + sorting.c) يُنشئ مصفوفات أعداد صحيحة عشوائية بأحجام [100, 1000, 5000, 10000, 50000, 100000]، ويُشغّل كل خوارزمية على نسخة منها، ويكتب مقاييس كل تشغيل (التبادلات، المقارنات، الوقت المستغرق) إلى ملفات ثنائية داخل ./executions/.
  2. نص Python (main.py) يقوم بتجميع وتشغيل برنامج C، وقراءة البيانات الثنائية، وحفظ الرسوم البيانية للأداء في ./graficos/.

المتطلبات

  • GCC
  • Python 3
  • matplotlib (pip install matplotlib)

الاستخدام

# تشغيل المعيار وإنشاء الرسوم البيانية
python main.py

أو تشغيل معيار C فقط:

make
./Trabalho_Pratico_II

المخرجات

الرسوم البيانية محفوظة في ./graficos/:

  • relatorio_completo.png — التبادلات والمقارنات والوقت في شكل واحد
  • trocas_comparacao.png — التبادلات لكل خوارزمية
  • comparacoes_comparacao.png — المقارنات لكل خوارزمية
  • tempo_comparacao.png — وقت التنفيذ لكل خوارزمية

هيكل المشروع

.
├── main.c          # مشغل المعيار
├── sorting.c       # تطبيقات الخوارزميات
├── sorting.h       # تعريفات الدوال
├── main.py         # قارئ البيانات ومنشئ الرسوم البيانية
├── makefile
├── requirements.txt
└── executions/     # ملفات النتائج الثنائية (تُنشأ أثناء التشغيل)