Data.Array
की documentation पढ़ता है:डेटा कितना तेज़ है। ऐरे?
हास्केल इंडेक्सेबल सरणियों, जो कार्यों जिनके डोमेन पूर्णांकों से सटे सबसेट isomorphic को कर रहे हैं के बारे में सोचा जा सकता है प्रदान करता है। इस तरह से प्रतिबंधित कार्यों को कुशलता से कार्यान्वित किया जा सकता है; विशेष रूप से, एक प्रोग्रामर अपेक्षाकृत घटकों तक पहुंच की अपेक्षा कर सकता है।
मुझे आश्चर्य है कि (!)
और (//)
कितनी तेजी से हो सकता है। क्या मैं इनसे ओ (1) जटिलता की अपेक्षा कर सकता हूं, जैसा कि मैं उनके अनिवार्य समकक्षों से करता हूं?
'(//) 'वास्तव में array_ के _size में linar है, क्योंकि इसे सरणी की एक नई प्रतिलिपि बनाना है। म्यूटेबल सरणी का उपयोग करते हुए, हालांकि, मैं उम्मीदों की संख्या में रैखिक होने की अपेक्षा करता हूं। – hammar
@hammar यह दोनों में रैखिक है, क्योंकि इसे सूची में सरणी के साथ-साथ पुनरावृत्ति की प्रतिलिपि बनाना चाहिए। // बल्कि बेकार है, हालांकि, एक मैरे में क्योंकि आपको थोक अद्यतन कार्यक्षमता की आवश्यकता नहीं है। – alternative
हां, ज़ाहिर है। हालांकि, यह वास्तव में महत्वपूर्ण है यदि आप कुछ तत्वों को एक से अधिक बार अपडेट कर रहे हैं। – hammar