Data Structures 2
TeX

Data Structures 2

डेटा संरचनाएँ II के लिए अकादमिक परियोजना। C में पाँच सॉर्टिंग एल्गोरिदम को विभिन्न इनपुट आकारों पर बेंचमार्क करती है, फिर Python/matplotlib के माध्यम से प्रदर्शन चार्ट उत्पन्न करती है।

डेटा स्ट्रक्चर्स II के लिए अकादमिक प्रोजेक्ट। C में पाँच सॉर्टिंग एल्गोरिदम को विभिन्न इनपुट साइज़ पर बेंचमार्क करता है, फिर पाइथन/मैटप्लॉटलिब के माध्यम से प्रदर्शन चार्ट बनाता है।

एल्गोरिदम के परिणाम का वर्णन करने वाले पाइथन कोड द्वारा उत्पन्न रिपोर्ट।

एल्गोरिदम

एल्गोरिदम औसत मामला सबसे खराब मामला
बबल सॉर्ट O(n²) O(n²)
सिलेक्शन सॉर्ट O(n²) O(n²)
इन्सर्शन सॉर्ट O(n²) O(n²)
क्विक सॉर्ट O(n log n) O(n²)
हीप सॉर्ट O(n log n) O(n log n)

यह कैसे काम करता है

  1. C प्रोग्राम (main.c + sorting.c) [100, 1000, 5000, 10000, 50000, आकारों पर यादृच्छिक पूर्णांक ऐरे उत्पन्न करता है, 100000], प्रत्येक एल्गोरिदम को एक कॉपी पर चलाता है, और ./executions/` के अंतर्गत बाइनरी फ़ाइलों में प्रति-रन मेट्रिक्स (स्वैप्स, कंपैरिज़न्स, एलेप्स्ट टाइम) लिखता है।
  2. पाइथन स्क्रिप्ट (main.py) C प्रोग्राम को संकलित और चलाती है, बाइनरी डेटा को पढ़ती है, और प्रदर्शन चार्ट को ./graficos/ में सहेजती है।

आवश्यकताओं

  • GCC
  • पाइथन 3
  • मैटप्लॉटलिब (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/     # बाइनरी परिणाम फ़ाइलें (रनटाइम पर उत्पन्न)