यह Janoma द्वारा cs.SE पर एक प्रश्न का एक रिपॉस्ट है । पूर्ण क्रेडिट और उसे बिगाड़ता है या सीएसईई।
एक मानक एल्गोरिदम पाठ्यक्रम में हमें सिखाया जाता है कि क्विकॉर्ट्स औसत पर ओ (एन लॉग एन) और सबसे खराब स्थिति में ओ (एन) है। उसी समय, अन्य सॉर्टिंग एल्गोरिदम का अध्ययन किया जाता है जो ओ (एन लॉग एन) सबसे खराब स्थिति (जैसे मर्जसॉर्ट और हेस्पोर्ट ) में होते हैं, और सबसे अच्छा मामले में भी रैखिक समय (जैसे बुलबुले ) लेकिन स्मृति की कुछ अतिरिक्त जरूरतों के साथ।
कुछ और अधिक चलने वाले समय में त्वरित नज़र के बाद यह कहना स्वाभाविक है कि क्विकॉर्ट दूसरों की तरह कुशल नहीं होना चाहिए ।
इसके अलावा, विचार करें कि छात्र बुनियादी प्रोग्रामिंग पाठ्यक्रमों में सीखते हैं कि पुनरावृत्ति वास्तव में सामान्य नहीं है क्योंकि यह बहुत अधिक मेमोरी का उपयोग कर सकता है, आदि इसलिए (और भले ही यह एक वास्तविक तर्क नहीं है), इससे यह विचार मिलता है कि क्विकॉर्ट्स नहीं हो सकता है वास्तव में अच्छा है क्योंकि यह एक पुनरावर्ती एल्गोरिथ्म है।
फिर, क्विकसर्ट अन्य सॉर्टिंग एल्गोरिदम को अभ्यास में क्यों बेहतर बनाता है? क्या इसका वास्तविक दुनिया के आंकड़ों की संरचना से कोई लेना -देना है ? क्या इसका कंप्यूटर में मेमोरी के काम करने के तरीके से लेना-देना है? मुझे पता है कि कुछ यादें दूसरों की तुलना में तेज़ हैं, लेकिन मुझे नहीं पता कि इस काउंटर-सहज प्रदर्शन का असली कारण (सैद्धांतिक अनुमानों की तुलना में) है।