2N lnN को समझने की कोशिश करना क्विकॉर्ट के लिए तुलना करता है


13

मैं सिडगविक की एल्गोरिदम पुस्तक में क्विकॉर्ट के विश्लेषण से गुजर रहा था। वह N अलग-अलग मदों की एक सरणी छाँटते हुए क्विकॉर्ट में तुलना की संख्या के लिए निम्नलिखित पुनरावृत्ति संबंध बनाता है।

यहाँ छवि विवरण दर्ज करें

मुझे यह समझने में कठिन समय हो रहा है ... मुझे पता है कि किसी भी तत्व के लिए धुरी बनने में 1 / N की संभावना है और यदि k धुरी बन जाता है, तो बाएं उप-सरणी में k-1 तत्व और दाएं उप- होंगे सरणी में Nk तत्व होंगे।

1. विभाजन की लागत N + 1 कैसे बन जाती है? क्या यह विभाजन करने के लिए N + 1 की तुलना करता है?

2.Sedgewick कहता है, k के प्रत्येक मान के लिए, यदि आप उन्हें जोड़ते हैं, तो संभावना है कि विभाजन तत्व k + है दो उप-सरणियों के लिए लागत आपको उपरोक्त समीकरण मिलता है।

  • क्या कोई इसे समझा सकता है ताकि कम गणित ज्ञान (मुझे) वाले लोग समझ सकें?
  • विशेष रूप से आप समीकरण में दूसरा शब्द कैसे प्राप्त करते हैं?
  • वास्तव में यह शब्द किस लिए खड़ा है?

1
उत्तर का हिस्सा, en.wikipedia.org/wiki/Quicksort " से कॉपी किया गया ", इसलिए, सभी संभावित विभाजन को देखते हुए और यह देखते हुए कि विभाजन के लिए तुलनाओं की संख्या n है - 1, इनपुट की सभी क्रमपरिवर्तनों की तुलना की औसत संख्या अनुक्रम पुनरावृत्ति संबंध को हल करके सटीक रूप से अनुमान लगाया जा सकता है: "किसी कारण से हम यहां 2 से दूर हैं - n-1 बनाम n + 1।
अय्यूब

जवाबों:


7

Cक्विकॉर्ट के लिए लागत समारोह में दो भाग होते हैं। पहला भाग सरणी को दो 'हिस्सों' में विभाजित करने की लागत है (हिस्सों को समान आकार का नहीं होना चाहिए, इसलिए उद्धरण)। दूसरा भाग उन दो हिस्सों को छांटने की लागत है।

  1. यह (N + 1)शब्द वास्तव में एक संघनित शब्द है, और शर्तों से आता है

    (N - 1) + 2
    

    यह क्विकर में विभाजन की लागत है: N-1धुरी मूल्य के साथ तुलना, और विभाजन में कुछ सीमा शर्तों के कारण 2 अतिरिक्त तुलना।

  2. समीकरण के दूसरे भाग में धुरी मूल्य के दोनों ओर दो 'हिस्सों' को छांटने की लागत शामिल है k

    एक धुरी मूल्य चुनने के बाद, आपको दो अनसोल्ड 'हिस्सों' के साथ छोड़ दिया जाता है। इन 'हिस्सों' को छाँटने की लागत उनके आकार पर निर्भर करती है और लागत फ़ंक्शन के पुनरावर्ती अनुप्रयोग के रूप में सबसे आसान वर्णित है C। यदि धुरी Nमूल्यों में सबसे छोटी है , तो क्रमशः दो 'हिस्सों' में से प्रत्येक को छाँटने की लागत C(0)और C(N-1)(0 तत्वों के साथ एक सरणी छाँटने की लागत और N-1तत्वों के साथ एक को छाँटने की लागत ) है। यदि धुरी पांचवीं सबसे छोटी है, तो क्रमशः दो 'हिस्सों' में से प्रत्येक को छाँटने की लागत है ( C(5)और C(N-6)5 तत्वों के साथ एक सरणी छाँटने की लागत और N-6तत्वों के साथ एक को छाँटने की लागत )। और इसी तरह अन्य सभी धुरी मूल्यों के लिए।

    लेकिन अगर आपको धुरी के मूल्य का पता नहीं है तो उन दो 'हिस्सों' को छाँटने में कितना खर्च आता है? यह धुरी के प्रत्येक संभावित मूल्य के लिए लागत लेने और उस मौके को गुणा करके किया जाता है जिससे कि विशेष मूल्य बदल जाता है।

    जैसा कि प्रत्येक धुरी मूल्य समान रूप से होने की संभावना है, 1/Nयदि आपके पास कोई विशेष धुरी मान चुनने का मौका है N। इसे समझने के लिए, एक पासा को रोल करने के बारे में सोचें। एक उचित पासा के साथ, प्रत्येक पक्ष का सामना करने का मौका बराबर होता है, इसलिए 1 रोल करने का मौका 1/6 है।

    संयुक्त, यह योग देता है जहां धुरी के प्रत्येक संभव मान के लिए, लागत ( C(k-1) + C(N-k)) को मौके से गुणा किया जाता है ( 1/N)

  3. 2N lnNशीर्षक में प्रश्न में सारांश सूत्र की आगे व्युत्पत्ति यहाँ विस्तार से समझाने के लिए बहुत अधिक गणित लेती है, लेकिन यह समझ पर आधारित है कि Nतत्वों की एक सरणी को छांटने के लिए लागत ( C(N)) को छाँटने के संदर्भ में व्यक्त की जा सकती है N-1तत्वों की सरणी ( C(N-1)) और एक कारक जो सीधे आनुपातिक है N


2
  1. ऐसा लगता है कि विभाजन चरण के लिए तुलना की संख्या के रूप में N + 1 पुस्तक में एक त्रुटि है। आपको N-1 गैर-धुरी तत्वों में से प्रत्येक के लिए यह पता लगाने की आवश्यकता है कि क्या यह धुरी से कम या अधिक है, जो इसकी तुलना लेता है; इस प्रकार कुल मिलाकर N-1 की तुलना करें, N + 1 की नहीं। (सरलतम मामले पर विचार करें, N = 2, अर्थात एक धुरी और एक अन्य तत्व: दो तत्वों के बीच तीन तुलना करने के लिए बिल्कुल कोई जगह नहीं है ।)

  2. उस मामले पर विचार करें जहां चुना हुआ धुरी सबसे छोटा तत्व होता है (k = 1)। इसका मतलब यह है कि सरणी को खाली हिस्से में बाईं ओर विभाजित किया गया है (धुरी से कम कोई तत्व नहीं हैं) और दाईं ओर एक भाग जिसमें धुरी को छोड़कर सभी तत्व शामिल हैं (अन्य सभी तत्व धुरी से अधिक हैं )। इसका मतलब यह है कि अब आप जिन उप-समस्याओं को हल करना चाहते हैं, उनमें क्रमशः 0 और N-1 (k-1 और N – k) आकार हैं, और C (0) और C (N-1) की तुलना करने की आवश्यकता है; इस प्रकार, कुल में सी (0) + सी (एन -1)।

    यदि धुरी दूसरा सबसे छोटा तत्व (k = 2) होता है, तो उप-समस्या आकार 1 और N-2 (k-1 और N – k; बाईं ओर एक तत्व होता है, क्योंकि यह केवल एक से छोटा होता है; धुरी)। इस प्रकार, इन उप-समस्याओं को पुन: हल करने के लिए C (1) + C (N-2) तुलना की आवश्यकता होती है। और इसलिए अगर धुरी तीसरा सबसे छोटा तत्व है, तो चौथा, आदि ये संख्यात्मक में अभिव्यक्ति हैं।

    क्योंकि धुरी को N तत्वों में से यादृच्छिक रूप से चुना जाता है, प्रत्येक मामले (धुरी सबसे छोटी है, धुरी दूसरी सबसे छोटी है, आदि) समान संभावना 1 / N के साथ होती है। यही कारण है कि हर में एन से आता है।

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