कभी भी एक निश्चित धुरी का चयन न करें - यह आपके एल्गोरिथ्म के सबसे खराब मामले ओ (एन ^ 2) रनटाइम का फायदा उठाने के लिए हमला किया जा सकता है, जो सिर्फ परेशानी के लिए पूछ रहा है। क्विकॉर्ट्स का सबसे खराब मामला रनटाइम तब होता है जब विभाजन 1 तत्व के एक सरणी में होता है, और एन -1 तत्वों के एक सरणी में। मान लीजिए कि आप अपने विभाजन के रूप में पहला तत्व चुनते हैं। यदि कोई आपके अल्गोरिथम में एक सरणी खिलाता है जो घटते क्रम में है, तो आपका पहला पिवट सबसे बड़ा होगा, इसलिए एरे में बाकी सब कुछ उसके बाईं ओर चला जाएगा। फिर जब आप पुनरावृत्ति करते हैं, तो पहला तत्व फिर से सबसे बड़ा होगा, इसलिए एक बार फिर आप इसके बाईं ओर सब कुछ डाल देंगे, और इसी तरह।
एक बेहतर तकनीक मध्य-तीन पद्धति है, जहां आप तीन तत्वों को यादृच्छिक रूप से चुनते हैं, और बीच का चयन करते हैं। आप जानते हैं कि आपके द्वारा चुना गया तत्व पहले या अंतिम नहीं होगा, बल्कि केंद्रीय सीमा प्रमेय द्वारा भी होगा, मध्य तत्व का वितरण सामान्य होगा, जिसका अर्थ है कि आप मध्य की ओर प्रवृत्त होंगे (और इसलिए , n lg n समय)।
यदि आप एल्गोरिथ्म के लिए O (nlgn) रनटाइम की गारंटी देना चाहते हैं, तो किसी सरणी के माध्यिका को खोजने के लिए कॉलम -5 विधि O (n) समय में चलती है, जिसका अर्थ है कि सबसे खराब स्थिति में क्विकॉर्ट के लिए पुनरावृत्ति समीकरण टी (n) = O (n) (माध्यिका ज्ञात करें) + O (n) (विभाजन) + 2T (n / 2) (बाएं और दाएं की पुनरावृत्ति)। मास्टर प्रमेय के अनुसार, यह O (n lg n) है । हालांकि, निरंतर कारक बहुत बड़ा होगा, और यदि सबसे खराब स्थिति आपके प्राथमिक चिंता का विषय है, तो इसके बजाय एक मर्ज सॉर्ट का उपयोग करें, जो औसत पर क्विकसॉर्ट की तुलना में केवल थोड़ा धीमा है, और O (nlgn) समय की गारंटी देता है (और बहुत तेज़ होगा इस लंगड़ा मंझला quicksort की तुलना में)।
मेडियन ऑफ़ मेडियंस एलोरिज़्म का स्पष्टीकरण