रैंडमाइज्ड क्विकसॉर्ट का क्या फायदा है?


18

अपनी पुस्तक रैंडमाइज्ड अल्गोरिदम में , मोटवानी और राघवन ने अपने RandQS फ़ंक्शन के विवरण के साथ परिचय खोला - रैंडमाइज्ड क्विकसॉर्ट - जहां धुरी, सेट को दो भागों में विभाजित करने के लिए उपयोग किया जाता है, यादृच्छिक पर चुना जाता है।

मैं पिछले कुछ समय से अपने (कुछ हद तक कमज़ोर) दिमागों की रैकिंग कर रहा था, लेकिन मैं यह नहीं देख पाया कि इस एल्गोरिथ्म का फ़ायदा उठाने में क्या फायदा है, कहते हैं, मध्य तत्व (सूचकांक में, आकार नहीं) हर बार।

मुझे लगता है कि मैं जो नहीं देख सकता वह यह है: यदि प्रारंभिक सेट एक यादृच्छिक क्रम में है, तो सेट में एक यादृच्छिक स्थान पर एक तत्व को चुनने और एक निश्चित स्थान पर एक तत्व चुनने के बीच क्या अंतर है?

क्या कोई मुझे काफी सरल शब्दों में बता सकता है?

जवाबों:


19

यदि इनपुट ऐरे को समान रूप से रैंडम पर वितरित किया जाता है, तो (जैसा कि आपने उल्लेख किया है) किसी तत्व को हमेशा एक निश्चित स्थिति पर चुनने के बीच कोई अंतर नहीं होता है (उदाहरण के लिए जैसा कि आप सुझाव देते हैं, बीच का एक उदाहरण) या रैंडम में चुना गया तत्व चुनना।

यदि फिर भी आपका इनपुट सरणी वास्तव में यादृच्छिक क्रम में नहीं है (जो लगभग सभी व्यावहारिक परिदृश्यों में ऐसा ही होता है) तो किसी को या तो "प्रेजुफ़ल" की आवश्यकता होती है, ताकि उसमें मौजूद तत्वों को यादृच्छिक क्रम में रखा जा सके, या ( समतुल्य) हमेशा एक यादृच्छिक तत्व को एक धुरी के रूप में लें। यह क्विकॉर्ट पार्टीशन के विभाजन चरण को लगभग समान आकार के उप-सरणियों में सुनिश्चित करता है और इसलिए अपेक्षित रनिंग टाइमहे(nलॉगn)

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


7
हे(nलॉगn)हे(n2)

n!1n!

@ RobertS.Barnes हाँ
जरनेज

4

जैसा कि जेर्नेज ने कहा, यह धारणा कि इनपुट के सभी क्रमपरिवर्तन समान रूप से होने की संभावना हमेशा वास्तविकता में नहीं होती है। पहला विचार इनपुट ऐरे को अनुमति देना हो सकता है। यह काम करेगा, लेकिन उस स्थिति का विश्लेषण करना आसान है जहां एक धुरी को यादृच्छिक पर चुना जाता है। इसे यादृच्छिक नमूने के रूप में भी जाना जाता है ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.