数组和链表的理解和运行时间分析
2017-12-27 19:55
567 查看
说一下存储数据的二种基本方式:数组和链表
内存结构:
数组和链表的原理:
数组会先在内存中分配空间,插入和删除元素,都会造成其它元素的重新排列,当然插入元素可以通过预留空间来处理,但是这样会造成内存的浪费,如果预留空间不够,你还是需要重新分配空间。
链表会在内存中存入元素和指向下一个存储内存的地址,可以分布在内存任意地址。
运行时间的差异:
数组的运行时间在读取上是O(1)
插入和删除是O(n)
链表的运行时间在读取上是O(n)
插入和删除是O(1)
内存结构:
数组和链表的原理:
数组会先在内存中分配空间,插入和删除元素,都会造成其它元素的重新排列,当然插入元素可以通过预留空间来处理,但是这样会造成内存的浪费,如果预留空间不够,你还是需要重新分配空间。
链表会在内存中存入元素和指向下一个存储内存的地址,可以分布在内存任意地址。
运行时间的差异:
数组的运行时间在读取上是O(1)
插入和删除是O(n)
链表的运行时间在读取上是O(n)
插入和删除是O(1)
相关文章推荐
- 访问单向链表和顺序数组第i个元素的时间复杂度的分析
- 程序理解和时间分析
- 数组与链表对比分析
- Java学习系列(三)Java运算符、控制语句、数组及其在内存中的运行分析
- 由数组随机化排序引出的对于js中sort()方法的理解分析
- 分析CSLA.Net 4.* 开源框架的源码,深入理解框架内部运行机制
- StopWatch 监控Java代码运行时间和分析性能
- max-heapify的运行时间分析
- 编程之美-程序理解和时间分析
- 线上服务运行时间长变慢问题的分析定位
- MD5和SHA1算法C++实现及运行时间分析
- 用stopWatch统计运行时间,性能分析
- 性能结果分析与理解(关于90%响应时间、图表等)
- 关于动态存储分配函数的调用,在已经过排序的数组中查找及删除内容的操作,余数的分析,删除字符数组中的空格,对链表的逆置,在源字符串中查找子字符串的个数,函数指针以及函数的调用,循环赋值带来的问题以及插入
- Java学习系列(三)Java运算符、控制语句、数组及其在内存中的运行分析
- 对iOS后台模式最多10分钟运行时间的进一步理解
- 算法运行时间分析
- 使用Intel VTune性能分析器分析.NET模块运行时间
- 一:理解ASP.NET的运行机制(例:通过HttpModule来计算页面执行时间)
- java学习中对构造函数和对象的理解,及对象的运行路径分析