Monday 15 June 2015

sorting - Short Circuiting sort -


मैं समझता हूं कि:

  head (मैप (2 **) [1 .. 999999])  

क्या वास्तव में 2 ** 1 का मूल्यांकन करेगा, बाकी का कोई भी नहीं, लेकिन जो पुस्तक मैं पढ़ रहा हूं वह कहती है:

  head सॉर्ट सोमेलिस्ट)  

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

एकमात्र तरीका मुझे लगता है कि यह काम करेगा अगर सॉर्टिंग एल्गोरिदम को पूरी सूची छोटी वस्तु की तलाश में है, और फिर उस आइटम के बिना सूची पर अवशेष। मेरे लिए, यह वास्तव में धीमी गति से लगता है।

क्या यह फ़ंक्शन काम करता है, या फिर एक और सॉर्टिंग एल्गोरिदम है जिसके बारे में मुझे नहीं पता है, जो कि कम सर्किटिंग की तरह इसे करने की अनुमति देगा?

यह:

सूची में सबसे छोटी वस्तु को खोजने की आवश्यकता होगी, क्योंकि यह सब प्रयोग किया जाता है।

... वास्तव में यह कहना चाहिए कि फंक्शन को केवल कम से कम काम करने की आवश्यकता है कि सॉर्टिंग एल्गोरिथ्म की आवश्यकता को खोजने के लिए सबसे छोटा तत्व। उदाहरण के लिए, यदि हम अपने अंतर्निहित सॉर्टिंग एल्गोरिथ्म के रूप में त्वरित रूप से उपयोग कर रहे हैं, तो head Quicksort इष्टतम (!) चयन एल्गोरिथ्म के बराबर है जिसे '' के रूप में जाना जाता है, जो सबसे बुरी स्थिति वाली रैखिक है इसके अलावा, हम के - केवल चयन करके ले जा सकते हैं k Quicksort

विकिपीडिया अपने एल्गोरिदम पर चयन एल्गोरिदम पर आलेखों को नोट करता है (मेरा जोर):

क्योंकि सॉर्टिंग के लिए भाषा समर्थन अधिक सर्वव्यापी है, सरलीकृत दृष्टिकोण गति में इसका नुकसान होने के बावजूद अनुक्रमण के बाद सॉर्टिंग को कई वातावरण में पसंद किया गया है। वास्तव में, आलसी भाषा के लिए, यह सरल दृष्टिकोण आपको सबसे छोटी जटिल / सबसे बड़ी सॉर्ट (अधिकतम / न्यूनतम विशेष मामले के रूप में) के लिए संभवतः सबसे अच्छी जटिलता प्राप्त कर सकता है यदि आपकी तरह आलसी पर्याप्त है।

Quicksort इस परिदृश्य में अच्छी तरह से काम करता है, जबकि Haskell (मर्ज सॉर्ट) में डिफ़ॉल्ट सॉर्ट बहुत अच्छी तरह से मेल नहीं करता है, क्योंकि यह क्रमबद्ध सूची के प्रत्येक तत्व को वापस करने के लिए कड़ाई से आवश्यक नहीं है । जैसा कि नोट्स:

आलसी क्विकस्रॉर्ट

O (n + k log k) कुल समय [1] में पहले के सबसे छोटे तत्वों के बैच का उत्पादन करने में सक्षम है [ P>

जबकि आलसी विलय की आवश्यकता

O (n + k log n) कुल समय [2]

अधिक के लिए आप पढ़ना चाहें।


No comments:

Post a Comment