पाठ 3 / 42

Arrays

लगातार मेमोरी का ब्लॉक जिसमें O(1) इंडेक्स एक्सेस।

लगातार मेमोरी

Array तत्वों को एक के बाद एक संग्रहीत करता है। हर स्लॉट समान आकार का होने से address(i) = base + i * size, इसलिए arr[i] पढ़ना O(1) है। लागत यह है कि बीच में डालने पर उसके बाद सब कुछ खिसकाना पड़ता है — O(n)

नंबर वाली लॉकरों की कतार

आप 1–46 देखे बिना सीधे लॉकर 47 तक जा सकते हैं। पर 10 और 11 के बीच नया लॉकर डालने के लिए हर बाद वाली लॉकर को एक जगह खिसकना होगा।

मुख्य ऑपरेशन

एक्सेस और append (amortised) सस्ते; आगे insert/delete रैखिक।

a = [10, 20, 30, 40]
a[2]            # O(1)  -> 30
a.append(50)   # O(1) amortised
a.insert(0, 5) # O(n)  shifts everything right
a.pop()        # O(1)  from the end
a.pop(0)       # O(n)  from the front

इंटरव्यू पैटर्न

"sorted array", "in place", "contiguous subarray", या "निश्चित अतिरिक्त स्थान" जैसे संकेत two pointers, prefix sum, या sliding window वाले arrays की ओर इशारा करते हैं।