जवाबों:
यदि आप सिर्फ एक-दो ग्राफ खींचते हैं, तो आप अच्छे आकार में होंगे। वुल्फराम अल्फा इस प्रकार की जांच के लिए एक महान संसाधन है:
इस लिंक द्वारा उत्पन्न । ध्यान दें कि ग्राफ़ में, लॉग (x) प्राकृतिक लॉगरिथम है, यही कारण है कि एक ग्राफ़ का समीकरण थोड़ा मज़ेदार लगता है।
2 n का विलोम है। जिस तरह 2 n किसी भी बहुपत्नी n k की तुलना में तेजी से बढ़ता है,भले ही परिमित k कितना बड़ा हो, log n किसी भी बहुपदीय कार्यों n k की तुलना में धीमी गति से बढ़ेगा। चाहे वह कितना भी छोटा नॉनजरो, धनात्मक हो।
बनाम n k , k < 1 के लिए समान है: n / log n बनाम n / n 1 - k
as लिए बड़ा n , n / log n > n k के लिए k < 1 और बड़ा n ।
कई एल्गोरिदम के लिए, यह कभी-कभी होता है कि स्थिरांक अलग-अलग होते हैं, जिससे छोटे डेटा आकारों के लिए एक या दूसरे तेज या धीमे होते हैं, और एल्गोरिथम जटिलता के रूप में अच्छी तरह से क्रमबद्ध नहीं होते हैं।
कहा जाता है कि, अगर हम केवल सुपर-बड़े डेटा आकारों पर विचार करते हैं, अर्थात। जो एक अंततः जीत, फिर O(n^f)
से तेज है O(n/log n)
के लिए0 < f < 1
।
एल्गोरिथम जटिलता का एक बड़ा हिस्सा इस प्रकार जानते हुए भी कि, यह निर्धारित करने के एल्गोरिथ्म अंत में तेजी से होता है है O(n^f)
की तुलना में तेजी है O(n/log n)
के लिए0 < f < 1
, अक्सर पर्याप्त है।
एक सामान्य नियम है कि गुणा (या विभाजित) के द्वारा होता है log n
अंत में से गुणा (या विभाजित) की तुलना में नगण्य हो जाएगा n^f
किसी के लिएf > 0
।
इसे और अधिक स्पष्ट रूप से दिखाने के लिए, आइए इस बात पर विचार करें कि क्या n बढ़ता है।
n n / log n n^(1/2)
2 n/ 1 ?
4 n/ 2 n/ 2
8 n/ 3 ?
16 n/ 4 n/ 4
64 n/ 6 n/ 8
256 n/ 8 n/16
1024 n/10 n/32
नोटिस जो अधिक तेजी से घटता है? यह हैn^f
स्तंभ है।
यहां तक कि अगर f
1 के करीब था, तो n^f
कॉलम बस धीमा शुरू होगा, लेकिन एन डबल्स के रूप में, हर के परिवर्तन की दर में तेजी आती है , जबकि n/log n
स्तंभ का भाजक एक स्थिर दर पर बदलता दिखाई देता है।
एक ग्राफ पर एक विशेष मामले की साजिश करते हैं
स्रोत: वोल्फ्राम अल्फा
मैंने ऐसा चुना O(n^k)
जो k
1 (पर 0.9
) के काफी करीब है । मैंने स्थिरांक का भी चयन किया ताकि शुरुआत O(n^k)
धीमी हो। हालांकि, ध्यान दें कि यह अंत में "जीतता है", और इससे कम समय लेता है O(n/log n)
।
दौड़ते समय की तुलना करते समय, n के बड़े मूल्यों का उपयोग करके उनकी तुलना करना हमेशा मददगार होता है। मेरे लिए, यह अंतर्ज्ञान बनाने में मदद करता है कि कौन सा कार्य धीमा है
आपके मामले में n = 10 ^ 10 और a = .5 के बारे में सोचें
O(n/logn) = O(10^10/10) = O(10^9)
O(n^1/2) = O(10^10^.5) = O(10^5)
इसलिए, O (n ^ a) O (n / logn) से तेज है, जब 0 <a <1 मैंने केवल एक मान का उपयोग किया है, हालाँकि, आप फ़ंक्शन के बारे में अंतर्ज्ञान बनाने के लिए कई मानों का उपयोग कर सकते हैं
O(10^9)
, लेकिन अंतर्ज्ञान बनाने के लिए कुछ संख्याओं की कोशिश करने के बारे में मुख्य बिंदु सही है।