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

الخوارزميات
| الخوارزمية | الحالة المتوسطة | أسوأ حالة |
|---|---|---|
| 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) |
آلية العمل
- برنامج C (
main.c+sorting.c) يُنشئ مصفوفات أعداد صحيحة عشوائية بأحجام[100, 1000, 5000, 10000, 50000, 100000]، ويُشغّل كل خوارزمية على نسخة منها، ويكتب مقاييس كل تشغيل (التبادلات، المقارنات، الوقت المستغرق) إلى ملفات ثنائية داخل./executions/. - نص 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/ # ملفات النتائج الثنائية (تُنشأ أثناء التشغيل)
