2009-10-04 6 views
73

क्या कलन विधि का उपयोग अजगर में sort() विधि में बनाया गया है? क्या उस विधि के लिए कोड देखना संभव है?पायथन के प्रकार() विधि में बनाया के बारे में

+6

बेशक यह विधि के लिए कोड को देखने के लिए संभव है (हाँ, एल्गोरिथ्म मूल रूप से अब Timsort के रूप में जाना जाता है) - अजगर एक खुला स्रोत परियोजना है। विधि शायद सी में लागू की गई है, इसलिए, आपको इसकी समझ करने के लिए सी के बारे में कुछ पता होना होगा। –

+0

क्या संस्करण मायने रखता है? –

+0

@melder: नहीं =) मैं सिर्फ एक समर्थक एल्गोरिथ्म पर एक नजर है करना चाहते हैं: पी @chris: कैसे? – Johannes

उत्तर

84

ज़रूर! कोड here, फ़ंक्शन islt से शुरू होता है और थोड़ी देर के लिए आगे बढ़ता है ;-)। जैसा कि क्रिस की टिप्पणी से पता चलता है, यह सी कोड है। आप this टेक्स्ट टेक्स्ट स्पष्टीकरण, परिणाम इत्यादि के लिए भी पढ़ना चाहेंगे।

यदि आप सी कोड से जावा कोड पढ़ना पसंद करते हैं, तो आप जावा में जोशुआ ब्लॉच के समय और जावा के लिए कार्यान्वयन देख सकते हैं (जोशुआ भी जिस व्यक्ति ने 1 99 7 में लागू किया था, संशोधित विलय जो अभी भी जावा में उपयोग किया जाता है, और कोई उम्मीद कर सकता है कि जावा अंततः अपने हाल ही के बंदरगाह के बंदरगाह पर स्विच करेगा)। , FWIW, जबकि मैं जावा प्रोग्रामर तुलना में एक बेहतर सी प्रोग्रामर हूँ, में -

timsort के जावा बंदरगाह से कुछ स्पष्टीकरण here है, diff here, कुंजी फ़ाइल here है (सभी आवश्यक फ़ाइलों को संकेत के साथ) इस मामले में मुझे जोशुआ का जावा कोड टिम के सी कोड की तुलना में अधिक पठनीय लगता है ;-)।

+3

+1 इस्तेमाल किया जा रहा है ये था। –

+4

@Chris, "ब्राउज़ अजगर स्रोतों" मेरे 'ब्राउज़रों बुकमार्क सलाखों के सभी में एक शॉर्टकट है - यह http://svn.python.org/view/python/trunk/ ;-) को इंगित करता है। –

+0

मैं जानना चाहता हूं कि समारोह 'list_ass_item() 'क्या करता है। :) –

7

जल्दी अजगर-संस्करणों में, प्रकार समारोह quicksort का एक संशोधित संस्करण को लागू किया। हालांकि, यह अस्थिर माना गया और 2.3 के रूप में वे एक अनुकूली mergesort कलन विधि का उपयोग करने लगे।

23

मैं सिर्फ एक बहुत ही उपयोगी लिंक है कि मैं एलेक्स के अन्यथा व्यापक जवाब में याद किया आपूर्ति करने के लिए चाहता था: (! ग्राफ दृश्यावलोकन के साथ) A high-level explanation of Python's timsort

+0

लिंक टूटा हुआ लगता है। – kzorro

+0

मैंने लिंक तय किया। – twasbrillig

संबंधित मुद्दे