विभिन्न डेटा संरचनाओं की कोई रैंकिंग समस्या के संदर्भ में कम से कम आंशिक रूप से बंधी होगी। यह सीखने में मदद करेगा कि एल्गोरिदम के समय और स्थान के प्रदर्शन का विश्लेषण कैसे किया जाए। आमतौर पर, "बिग ओ नोटेशन" का उपयोग किया जाता है, उदाहरण के लिए, द्विआधारी खोज ओ (लॉग एन) समय में है, जिसका अर्थ है कि किसी तत्व की खोज करने का समय तत्वों की संख्या का लॉग (बेस 2, अंतर्निहित) है। वास्तव में, चूंकि प्रत्येक चरण शेष डेटा के आधे को अप्रासंगिक के रूप में बताता है, तत्वों की संख्या दोगुनी होने से समय 1 चरण बढ़ जाएगा। (बाइनरी सर्च स्केल अच्छी तरह से।) अंतरिक्ष प्रदर्शन चिंता करता है कि बड़े डेटा सेट के लिए मेमोरी की मात्रा कैसे बढ़ती है। यह भी ध्यान दें कि बिग-ओ नोटेशन निरंतर कारकों को नजरअंदाज करता है - छोटे डेटा सेट के लिए, एक ओ (एन ^ 2) एल्गोरिथ्म अभी भी ओ (एन * लॉग एन) एल्गोरिदम की तुलना में तेज हो सकता है जिसमें एक उच्च निरंतर कारक होता है।
समय और स्थान के अलावा, अन्य विशेषताओं में शामिल है कि क्या एक डेटा संरचना को सॉर्ट किया गया है (पेड़ और स्किपर्स को छांटा गया है, हैश टेबल नहीं हैं), दृढ़ता (द्विआधारी पेड़ पुराने संस्करणों से संकेत का पुन: उपयोग कर सकते हैं, जबकि हैश टेबल को संशोधित किया गया है), आदि।
जब आपको उनकी तुलना करने में सक्षम होने के लिए कई डेटा संरचनाओं के व्यवहार को सीखने की आवश्यकता होगी, तो प्रदर्शन में भिन्नता के लिए एक तरह से कुछ का बारीकी से अध्ययन करना है। मैं सुझाव दूंगा कि आपस में जुड़े लिस्ट्स, बाइनरी सर्च ट्रीज़ और स्किप लिस्ट्स , जिनमें से सभी अपेक्षाकृत सरल हैं, लेकिन इनमें बहुत अलग विशेषताएँ हैं। एक मूल्य खोजने में कितना काम लगता है, इस बारे में सोचें, एक नया मूल्य जोड़ें, क्रम में सभी मान ढूंढें, आदि।
एल्गोरिदम / डेटा संरचना के प्रदर्शन का विश्लेषण करने पर विभिन्न ग्रंथ हैं जो लोग सुझाते हैं, लेकिन वास्तव में उन्हें इससे क्या फर्क पड़ता है कि मैं ओकेमेल सीख रहा था। जटिल डेटा संरचनाओं के साथ व्यवहार करना एमएल का मजबूत सूट है, और उनका व्यवहार बहुत स्पष्ट है जब आप सी में संकेत और मेमोरी प्रबंधन से बच सकते हैं (डेटा संरचनाओं को समझने के लिए ओमेक्एल सीखना केवल लगभग निश्चित रूप से लंबा रास्ता है, हालांकि। :)।