我刚刚开始学习Java中的数据结构和算法(从数组开始)。我有两个问题。
实际上是算法访问的数组的位置。因为
他们说插入数组是一步完成的,因为
只需将数据项插入第一个可用位置;
因此插入比搜索快。
但是实际上这是两种操作-一种是访问
数组位置,两个实际上是在其中插入数据项
内存位置。
我很好奇他们为什么不考虑实际情况
插入(如果是Search,则为比较操作)
操作(在我看来)。我从未见过任何人讨论
讨论算法时,有关该操作的内容很多。
与计算机内存有关的是仅访问
内存位置很麻烦,而且操作
实际上将数据项放在内存位置而不是
有多深思?它不会吞噬计算机的
资源? (希望我已经清楚地说明了这个问题!)
注意:我刚刚开始阅读Robert Lafore的“Java中的数据结构和算法”书,而且我不确定应该确切地读什么书(计算机内存?数组项如何放置在内存中?混乱!)。对我来说很清楚。因此,也欢迎提供任何提示。
最佳答案
先前的答案似乎正确地解决了#1或#2的问题,但并非两者都对,因此最终我不得不编写自己的答案:
i
位于数组的中间,那么所有后续项都必须向上移动一个位置才能为其腾出空间,除了(N-i)
读取和另一个(N-i)
写入之外,用于将项目存储在i
的一次写入。)