पाठ 3 / 42
Arrays
Arrays को O(1) index access वाली contiguous memory के रूप में समझें, और बीच में insert या delete की लागत जानें।
लगातार मेमोरी
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 की ओर इशारा करते हैं।