तक पहुंचने की समय जटिलता मैं एक साधारण पायथन प्रोग्राम लिख रहा हूं।पाइथन dict
मेरा प्रोग्राम शब्दकोशों के लिए रैखिक पहुंच से ग्रस्त प्रतीत होता है, इसका रन-टाइम तेजी से बढ़ता है, भले ही एल्गोरिदम क्वाड्रैटिक हो।
मैं मूल्यों को याद करने के लिए एक शब्दकोश का उपयोग करता हूं। यह एक बाधा प्रतीत होता है।
मेरे पास हैशिंग मूल्य जो बिंदुओं के tuples हैं। प्रत्येक बिंदु है: (x, y), 0 < = x, y < = 50
शब्दकोश में प्रत्येक कुंजी है: 2-5 अंक का एक टुपल: ((x1, y1), (x2, y2), (x3, y3), (x4, y4))
चाबियाँ लिखे जाने की तुलना में कई बार अक्सर पढ़ी जाती हैं।
क्या मैं सही हूं कि पाइथन डिक्ट्स ऐसे इनपुट के साथ रैखिक पहुंच के समय से ग्रस्त हैं?
जहां तक मुझे पता है, सेटों ने लॉगरिदमिक पहुंच के समय की गारंटी दी है।
पायथन में सेट (या कुछ समान) का उपयोग करके मैं डिक्ट्स का अनुकरण कैसे कर सकता हूं?
def memoize(fun):
memoized = {}
def memo(*args):
key = args
if not key in memoized:
memoized[key] = fun(*args)
return memoized[key]
return memo
इसके लिए आपके पास क्या सबूत हैं? क्या आप अपना वास्तविक प्रदर्शन संख्या प्रदान कर सकते हैं? प्रोफाइल परिणाम? आप अपनी समस्या के लिए गलत जगह पर देख रहे हैं। तो कारण के रूप में अनुमान लगाने से पहले कृपया अपनी समस्या को दस्तावेज करें। –
मैं पूरी चीज पाइथन प्रोफाइलर के माध्यम से चलाता हूं। ज्ञापन फ़ंक्शन तेजी से अधिक समय लेता है, भले ही बहुपद रूप से कई अलग-अलग इनपुट हो सकें। यदि आप चाहें तो मैं प्रोफाइलर डेटा पोस्ट करूंगा। – x10
क्या आप हमें ज्ञापन समारोह के लिए कुछ नमूना कोड पोस्ट कर सकते हैं? क्या आप एक त्वरित परीक्षण ऐप लिखने का प्रयास कर सकते हैं, जिससे आपके डेटा के लिए हैंश का भार उत्पन्न हो सकता है और टकराव की संख्या गिनती है (पाइथन काम में हैश के आधार पर लंबे समय तक नहीं लेना चाहिए) – Martin