उत्तर
पहले एक
(n >= 3) && (n <= 99)
यह 3 संचालन
n >= 3
n <= 99
and
कहाँ elem के रूप में सरणी में आइटम लग रही है क्या कर रहा है, इसलिए तक क्या कर रहा है तेजी से होता है (99 - 3) * 2 संचालन।
index = 0
isFound = false
array[] = { 3, 4, 5, 6, ... 98, 99 }
while isFound == false
isFound = (n == array[index++])
(n> = 3) & & (एन < = 99) तेजी से होता है, क्योंकि यह केवल दो तुच्छ तुलना शामिल है। यदि कंपाइलर/दुभाषिया किसी भी तरह का असली काला जादू अनुकूलन नहीं करता है तो उसे सूची ([3..99]) बनाना है क्योंकि आलसी मूल्यांकन का उपयोग नहीं किया जा सकता है (आमतौर पर जब तक आप पूरा नहीं कर लेते हैं, तब तक अगले मूल्य को खींचते हैं, जो इस मामले में ओ (एन/2) की जटिलता होगी)।
+1 स्टैक ओवरफ्लो में आपका स्वागत है :) –
+1 तो कोई काला जादू नहीं है हालांकि मैं कुछ की उम्मीद कर रहा था :) एसओ में भी आपका स्वागत है! –
इन दो अभिव्यक्तियों का मतलब एक ही बात नहीं है। एक सूक्ष्म अंतर यह है कि एक पर Ord
और अन्य Enum
पर निर्भर करता है:
> :t \n -> (n >= 3) && (n <= 99)
\n -> (n >= 3) && (n <= 99) :: (Num a, Ord a) => a -> Bool
> :t \n -> n `elem` [3..99]
\n -> n `elem` [3..99] :: (Num a, Enum a) => a -> Bool
तो, उदाहरण के लिए, यदि n 3.14159 है, तो पहले टेस्ट पास जाएगा, लेकिन दूसरा नहीं होगा:
> (pi >= 3) && (pi <= 99)
True
> pi `elem` [3..99]
False
इसके अलावा, जबकि चार प्रस्तावना Num
उदाहरणों (Int
, Integer
, Float
, और Double
) दोनों Ord
और Enum
के सभी उदाहरणों हैं, यह एक अंकीय प्रकार Ord
का एक उदाहरण है कि कल्पना करना संभव है लेकिन Enum
नहीं। ऐसे मामले में, दूसरा परीक्षण कानूनी भी नहीं होगा।
इसलिए, आम तौर पर, कंपाइलर दूसरे के जितना तेज़ हो सकता है जब तक कि यह किसी दिए गए प्रकार के लिए नहीं जानता, यह Ord
है और सीमा में सभी ऑर्डर किए गए मान सूची गणना में भी हैं enumFromTo
द्वारा बनाया गया। Float
और Double
के लिए यह सच नहीं है, और Int
और Integer
के लिए कंपाइलर इसे प्राप्त करने का कोई तरीका नहीं है, कंपाइलर और लाइब्रेरी प्रोग्रामर को इसे कोड देना होगा और यह सुनिश्चित करना होगा कि यह सभी मामलों में हो।
मशीन और कंपाइलर (या दुभाषिया) पर निर्भर करता है।
- 1. कौन सा तेज़ और हल्का है - mysqli और PDO
- 2. numpy.max या अधिकतम? कौन सा तेज़ है?
- 3. कौन सा तेज़ है? तुलना या असाइनमेंट?
- 4. कौन सा तेज़, सार वर्ग या इंटरफ़ेस है?
- 5. कौन सा तेज़ है? Constants, चर या परिवर्तनीय Arrays
- 6. accdb बनाम एमडीबी। कौन सा तेज़/बेहतर है?
- 7. कौन सा तेज़, सूचक पहुंच या संदर्भ पहुंच है?
- 8. कौन सा तेज़ है: सहसंबंधित उपक्विरी या शामिल हो?
- 9. कौन सा तेज़, एसएसएच या गिट प्रोटोकॉल है?
- 10. PHP- MySQL या MySQLi में सबसे तेज़ कौन सा है?
- 11. रेगेक्स बनाम मैनुअल तुलना। कौन सा तेज़ है?
- 12. ओपनजीएल: कौन सा तेज़ है - GL_POLYGON या GL_TRIANGLE_FAN?
- 13. घटना। इन्वोक (तर्क) बनाम घटना (तर्क)। कौन सा तेज़ है?
- 14. array_push() बनाम $ सरणी [] = .... सबसे तेज़ कौन सा है?
- 15. जेएसएफ बनाम एचटीएमएल (जेएसपी)। कौन सा चुनना है? और क्यों?
- 16. कौन सा फ़्लोटिंग-पॉइंट तुलना अधिक सटीक है, और क्यों?
- 17. प्रसंस्करण और रूपांतरण int में कौन सा तेज़ है। पर्स(), int.TryParse(), Convert.Int32()
- 18. SQL सर्वर डेटाबेस में सबसे आम आईडी प्रकार कौन सा है, और कौन सा बेहतर है?
- 19. पिक्सेल और ऑब्जेक्ट ट्रैकिंग तक पहुंच: इमू सीवी या Aforge.Net? कौन सा तेज़ और आसान है?
- 20. कौन सा बेहतर है?
- 21. इनमें से कौन सा मेरा जेडीके पथ है, और कौन सा जावा है?
- 22. सबसे तेज़ जावास्क्रिप्ट इंजन कौन सा है, और क्या इससे वास्तव में कोई फर्क पड़ता है?
- 23. एक नियंत्रक कौन सा है और स्प्रिंग एमवीसी में हैंडलर मैपिंग कौन सा है?
- 24. कौन सा MySQL क्वेरी प्रभावी है रिकॉर्ड
- 25. कौन सा ऑपरेटर हटाता है?
- 26. कौन सा स्पष्ट तरीका है?
- 27. फ़ायरफ़ॉक्स और अन्य ब्राउज़र क्यों गणना करते हैं कि कौन सा नंबर बड़ा है?
- 28. कौन सा HTML डॉकटाइप?
- 29. बेहतर यूनिकोड सामान्यीकरण फ़ॉर्म कौन सा है?
- 30. आरंभ करना .. कौन सा अधिक कुशल है?
क्या यह वास्तव में 'elem' वास्तव में लागू किया गया है? क्या वास्तव में कोई काला जादू नहीं है ?? बिलकुल?? :) –
क्या आप "काला जादू" की अपेक्षा करेंगे? यहां तक कि यदि हुड के तहत संकलक पहचानता है [3..99] एक सीमा है और एक श्रेणी की जांच को पूर्ववत करता है तो यह अभी भी (n> = 3) && (n <= 99) –
जैसा ही होगा, मुझे लगता है कि आप जीएचसी को इस विशेष मामले को फिर से लिखने के लिए एक लाइट 'एआईएम/एनमफ्रॉमटो "फॉरल एक्स लो हाय का उपयोग करके अनुकूलित किया जा सकता है। elem x (enumFromTo lo hi) = (x> = lo && x <= hi) '। मैंने फिर से लिखने के नियमों के साथ कुछ भी नहीं किया है (हालांकि काले जादू की तरह बहुत अधिक ;-), तो नमक के एक बड़े चुटकी के साथ इसे ले लो! – yatima2975