5 तत्वों को क्रमबद्ध (क्रम) करने के लिए आवश्यक तुलना की कम से कम संख्या


22

पांच तत्वों को क्रमबद्ध (क्रम) करने के लिए आवश्यक तुलनाओं की सबसे कम संख्या का पता लगाएं और एक एल्गोरिथ्म को तैयार करें जो इस संख्या की तुलना करने वाले तत्वों का उपयोग करता है।

समाधान : 5 हैं! = 120 संभावित परिणाम। इसलिए छंटनी प्रक्रिया के लिए एक बाइनरी ट्री में कम से कम 7 स्तर होंगे। वास्तव में, impl 120 का तात्पर्य h 7 7. लेकिन 7 तुलना पर्याप्त नहीं है। पाँच तत्वों को क्रमबद्ध (क्रम) करने के लिए आवश्यक तुलनाओं की न्यूनतम संख्या 8 है।2hh

यहां मेरा वास्तविक प्रश्न है: मुझे एक एल्गोरिथ्म मिला जो इसे 8 तुलना में करता है लेकिन मैं यह कैसे साबित कर सकता हूं कि यह 7 तुलनाओं में नहीं किया जा सकता है?


जवाबों:


27

समाधान गलत है। डेमथ [1; 2 के माध्यम से, सेकंड। 5.3.1] दर्शाता है कि केवल सात तुलनाओं का उपयोग करके पाँच मानों को क्रमबद्ध किया जा सकता है, अर्थात "सूचना सिद्धांत" निचली सीमा इस उदाहरण में तंग है।

उत्तर अनुरूप एक विधि है , सामान्य एल्गोरिथ्म नहीं। यह भी बहुत अच्छा नहीं है। यह रूपरेखा है:n=5

  1. पहले दो जोड़े को क्रमबद्ध करें।

  2. जोड़े अपने संबंधित बड़े तत्व को आदेश दें।

    परिणाम को कॉल करें ; हम एक < b < d और c < d जानते हैं ।[a,b,c,d,e]a<b<dc<d

  3. सम्मिलित में [ एक , , ]e[a,b,d]

  4. चरण 3 के परिणाम में डालें ।c

पहला कदम स्पष्ट रूप से दो तुलना करता है, दूसरा केवल एक ही है। अंतिम दो चरणों में दो तुलनाएं होती हैं; हम दोनों मामलों में एक तीन-तत्व सूची में सम्मिलित करते हैं (चरण 4 के लिए, ध्यान दें कि हम से जानते हैं कि c हाथ में सूची के अंतिम तत्व से छोटा है) और पहले मध्य तत्व के साथ तुलना करें। यह कुल सात तुलना करता है।c<dc

चूँकि मैं इस बारे में "अच्छा" छद्म लिखने के लिए नहीं देखता हूँ, एक परीक्षण के लिए यहाँ देखें (और उम्मीद के मुताबिक पठनीय)।


  1. पीएच.डी. एचबी डेमथ (1956) द्वारा थीसिस (स्टैनफोर्ड यूनिवर्सिटी)

    एचबी डेमथ (1985) द्वारा इलेक्ट्रॉनिक डेटा सॉर्टिंग भी देखें

  2. डोनाल्ड ई। नुथ द्वारा क्रमबद्ध और खोज ; कंप्यूटर प्रोग्रामिंग वॉल्यूम की कला । 3 (दूसरा संस्करण, 1998)

5
परीक्षण यह दिखाने के लिए पांच अंक देता है कि यह असंभव है। आश्चर्य है कि आपके उत्तर के लिए आपको कितने अंक मिलेंगे :-) (शायद शून्य गलत है क्योंकि परीक्षण गलत नहीं हो सकता है)।
gnasher729

0

तुलनात्मक छँटाई पर आधारित सैद्धांतिक निचला log(n!) । यह कहना है कि केवल < या > तुलना का उपयोग करते हुए n वस्तुओं को सॉर्ट करने के लिए कम से कम आधार 2 लघुगणक n लगता है ! , इसलिए लोग इन ( 5 ! ) 6.91 आपरेशनों।<>n!log(5!)6.91

5!=120 बाद से ! = 120 और 27=128 , एक द्विआधारी निर्णय पेड़ का उपयोग करके आप 7 तुलनाओं में 5 आइटम सॉर्ट कर सकते हैं। पेड़ ने पता लगाया कि आपके पास 120 में से कौन से क्रमपरिवर्तन हैं, फिर क्या इसे छांटने के लिए स्वैप की जरूरत है।

यह सुंदर या छोटा कोड नहीं है, और आपको संभवतः निर्णय ट्री बनाने के लिए कोड पीढ़ी विधियों का उपयोग करना चाहिए और इसे हाथ से कोड करने के बजाय स्वैप करना चाहिए, लेकिन यह काम करता है; और 5 आइटम के किसी भी संभावित क्रमचय के लिए काम करता है, इस प्रकार यह साबित करता है कि आप 7 तुलनाओं में 5 वस्तुओं को क्रमबद्ध नहीं कर सकते हैं।


जहां तक मुझे याद है सकते हैं, सैद्धांतिक लोअर बाउंड एक देता है asymptotic (यानी, बाध्य निचले )। क्या आप निश्चित हैं कि स्थिर कारक 1 है? Ω(nlogn)
dkaeae

सबसे खराब स्थिति के लिए सैद्धांतिक निचली सीमा छत (log2 (n!)) है, क्योंकि बिल्कुल n हैं! क्रमपरिवर्तन, और अगर वहाँ कश्मीर तुलना कर रहे हैं आप की जरूरत है 2 ^ k if n !. यह केवल एक स्थिर कारक 1 नहीं है, यह सटीक है।
gnasher729

-1

मैं क्विकसर्ट सोच रहा था। आप उस तत्व को चुनते हैं जो मध्य तत्व का होता है। बचे हुए 4 आइटमों की धुरी की तुलना करें, जिसके परिणामस्वरूप दो ढेर को छांटा जाएगा। उनमें से प्रत्येक बवासीर को 1 तुलना में क्रमबद्ध किया जा सकता है। जब तक मैंने एक भयानक गलती नहीं की है, तब तक केवल 6 तुलनाओं में 5 वस्तुओं को पूरी तरह से सॉर्ट किया गया था और मुझे लगता है कि काम करने के लिए आवश्यक तुलना की सबसे कम संख्या है। मूल प्रश्न 5 तत्वों को छाँटने के लिए तुलनाओं की सबसे कम संख्या का पता लगाया गया था।


1
1 तुलना में 3 तत्वों के ढेर को कैसे हल किया जा सकता है?
xskxzr

क्या 3 तत्व ढेर आप के बारे में बात कर रहे हैं? जो मैंने ऊपर वर्णित किया है वह पहले पास के बाद 2 तत्वों के 2 ढेर पैदा करता है।
स्कूटी

मुझे लगा कि आप धुरी के रूप में एक यादृच्छिक तत्व का उपयोग करते हैं। आप 4 तुलनाओं में धुरी के रूप में मध्य तत्व का चयन कैसे कर सकते हैं?
xskxzr

यह मैं नहीं कह रहा हूँ। ऊपर से "5 से! = 120 .... एक द्विआधारी निर्णय पेड़ का उपयोग करके आप 7 तुलनाओं में 5 आइटम सॉर्ट कर सकते हैं।" तत्वों के क्रमपरिवर्तन की संख्या 120 है, लेकिन एक शाखा होनी चाहिए जिसमें केवल 6 तुलनाएं हों क्योंकि क्विकॉर्ट के एक यादृच्छिक नमूने को काम करने में केवल 6 लगते थे। 120 क्रमांक में से एक क्रमबद्ध सूची के लिए है। उस शाखा में 4 तुलनाएं हो सकती हैं।
स्कूटी

-2

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

मिनिमल
ए <बी <सी = 2
ए <बी <सी <डी = 3
ए <बी <सी <डी <ई = 4

अधिकतम
3 ^ 3
4 ^ 4
5 ^ 5

4 संख्याओं के लिए मध्य उपयोग 3-6 डालें।
4 नंबर के लिए 4-5 मर्ज का उपयोग करें।
विकी द्वारा न्यूनतम तुलना 4 संख्याओं के लिए 5 है :) 5 के लिए 7. आप 8 का उपयोग करते हैं, अभी भी बहुत कुछ है।
https://en.wikipedia.org/wiki/Comparison_sort#Number_of_comparisons_required_to_sort_a_list
यदि आप सभी तुलनाओं से पहले जानते हैं, तो आप तुलनाओं के साथ नीचे जा सकते हैं। 4 नंबर के लिए मेरा औसत 3.96 / 1024 सभी संयोजन है।


2
इस सवाल का जवाब नहीं है। सवाल पूछता है कि कैसे साबित किया जाए कि केवल 7 तुलनाओं का उपयोग करने का कोई तरीका नहीं है। अपने दृष्टिकोण का उपयोग करने के लिए, हमें उन सभी एल्गोरिदमों की गणना करनी होगी जो 7 तुलनाओं में उपयोग करते हैं। मुझे लगता है कि समय की उचित मात्रा में गणना करने के लिए ऐसे कई एल्गोरिदम हैं। किसी भी मामले में, मैं यह नहीं देखता कि यह मौजूदा जवाब में क्या जोड़ता है, जिसने पहले ही सवाल का पूरा जवाब दे दिया था। हम पसंद करेंगे कि आप उन सवालों के जवाब देने पर ध्यान दें जहां आप कुछ नया जोड़ सकते हैं।
DW

जोड़ें ग्राफिक है और एलजी के लिए टिप। सीएमपी से पहले सीएमपी मूल्य की भविष्यवाणी के लिए। और उसका मंत्री 7 है, अन्य स्रोत 8, सच्चा मंत्री। 4 है !!! 4 केवल asc / desc ऑर्डर के लिए काम करता है। Ex1: 00000 01234 43210 10000 ... Ex2: बीच में डालें: 43210, 4 शुरू करें, 3 प्राप्त करें, 4 4, 3, 2, cp 4> 2, cp 3> 3, 1, cp (मध्य) 3> प्राप्त करें। 1, cp 2> 1, get 0, cp (मध्य) 3> 0, cp 2> 0, cp 1> 0 ... 8 cmp। 7 कंकरेट ऑर्डर या एल्ग के लिए संभव हो सकता है। आप 4 नंबर mlich.zam.slu.cz/js-sort/x-sort-x2.htm , औसत 3.96 के लिए मेरे पेज पर देख सकते हैं । न्यूनतम-अधिकतम 3-6। 5 के लिए बदल सकता है और उसकी अल्ग का परीक्षण कर सकता है।
पीटर मैलिच
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.