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