Everybody always says 0 indexing confuses newbies, but I've never seen anyone confused about it. I'm not a teacher, but I've been a beginner and read many beginner questions/answers in forums. Personally I never had one bit of trouble with it...
@@fundef I don't see how that's confusing, but if you're coding in a language with C-like loops, then you're gonna have to be mindful of that either way. In fact, you still have to be mindful of that in 1-indexed languages. And if you think that's confusing for beginners, then let me tell you that 1-indexing brings a whole lot more confusion than just that. One of the problems I faced in my first months of Lua, was trying to understand when to 1-index and when not to, and even after 5 years sometimes I'm still not sure. And I was a beginner in Lua, but not in programming. It's an unnecessary confusion and waste of time. This is because many arrays *have to be* indexed from 0, because indexing math only works with 0 indexing. As a result, if the language is 1-indexed, then you'll have inconsistent code, where some arrays are 1-indexed and some are 0-indexed, which makes it more error prone and potentially confusing to write code that handles both. You can have all arrays 0-indexed, but not all arrays 1-indexed. And in a 1-indexed language like Lua, any time you use a 0-based loop you have to put *_-1_* on the limit, which is error prone and it's equivalent to having to use
Hi William, to make dynamic arrays, you mentioned that there's more than one way to do so. Can I know the general idea of the other methods? I searched the web and could not find any leads to them.
Am i right to say, that in python we don't need to vopy the arry to anew arry to increase its capacity. This will happen automatically we can add as many item as we want. ???
Afaik, deletion from a static array is O(1), because nothing ever gets shifted. However, the array is static, so the memory of that index remains allocated, and to delete the index you either replace that piece of memory with new content of the same type, or with NULL (or '\0' in C strings).
AFAIK the static array is static in nature, which means there should be no functions to modify the data structure. Hence Insertion/Appending/Deletion make no sense. The array is filled once and only search and accessing/modifying the values are permitted but the size of the array remains static.
If there is enough memory, then it is O(1). You just take the next contiguous memory chunk and use that for storing the data. If there isn't, then it isn't O(1). But since it mostly the prior case, the complexity is amortized O(1).