Arrays
विधि DualPivotQuicksort
, और जटिल प्रकारों का उपयोग करके मूल डेटा प्रकारों को क्रमबद्ध कर रहा है - मर्ज-सॉर्ट का उपयोग करके। (इनपुट आकार छोटा होने पर सम्मिलन-प्रकार)।Arrays.sort() - प्राचीन और जटिल डेटा प्रकारों के लिए दो अलग-अलग रणनीतियों को क्रमबद्ध करने के लिए
DualPivotQuicksort
बड़े इनपुट आकारों पर अभी भी मर्ज-सॉर्ट का उपयोग कर रहा है, हालांकि, यह छोटे इनपुट आकारों की एक श्रृंखला पर दोहरी-क्विकॉर्ट का उपयोग कर रहा है।
मैं क्या सोच रहा हूं - आदिम और गैर-प्राइमेटिव प्रकारों को क्रमबद्ध करने में रणनीतियों में यह अंतर क्यों है?
एल्गोरिदम का प्रदर्शन महत्वपूर्ण रूप से इनपुट आकार पर निर्भर करता है - डेटा प्रकार नहीं। प्राइमेटिव्स (>, <, ==) पर सादे परिमाण तुलना के बजाय compareTo()
को आमंत्रित करना मेमोरी में अतिरिक्त स्थान जला नहीं जाता है (और इस प्रकार मेमोरी स्पेस के कारण पूर्णकालिक प्रदर्शन धीमा नहीं होता है) जो होगा रन-टाइम के दौरान काफी महत्वपूर्ण है।
Arrays.sort()
आदिम डेटा प्रकारों, और जटिल डेटा प्रकारों के लिए विभिन्न प्रकार की रणनीतियों का उपयोग करने के तरीके क्यों हैं?
टीआईए।
यह संभव है कि ऑब्जेक्ट तुलना की तुलना में वस्तु तुलना तुलनात्मक रूप से तुलनात्मक रूप से अधिक महंगी हो सकती है। मैं टिमसॉर्ट और न ही दोहरी-पिवट क्विकॉर्ट से परिचित नहीं हूं, इसलिए मैं निश्चित रूप से नहीं कह सकता। जावाडोक टिमसॉर्ट के लिए तुलनात्मक रूप से तुलनात्मक लाभ का उल्लेख करता है, लेकिन यह देखते हुए कि अन्य प्रकार के लिए ऐसी कोई चीज़ नहीं है, मैं वास्तव में कोई निष्कर्ष नहीं खींच सकता। – awksp