剑指offer 数组
2017-10-24 08:50
176 查看
关于数组的几点知识:
1:数组的时间效率很高:可根据下标在O(1)时间内读写任何元素。数组空间效率较差:即使是只存储一个数据,也需要为数组分配预定大小的内存,产生一定的碎片。
2:为了解决数组的空间效率不高,C++设计了动态数组vector:先开辟一块小的内存,当数据量超过该内存的大小时,STL自动会分配一块更大的内存(一般而言,vector扩充时,新的容量都是之前的两倍)。但是STL中的内存扩充行为又有着大量的额外操作,这对vector的时间性能也有这负面的影响。因此使用动态数组要尽可能的避免内存扩充。
3:数组与指针的联系:数组的sizeof,元素个数乘以元素的大小。指针的sizeof,32位机器为4bit。当数组作为函数的参数进行传递时,会自动退化为同类型的指针。
1:数组的时间效率很高:可根据下标在O(1)时间内读写任何元素。数组空间效率较差:即使是只存储一个数据,也需要为数组分配预定大小的内存,产生一定的碎片。
2:为了解决数组的空间效率不高,C++设计了动态数组vector:先开辟一块小的内存,当数据量超过该内存的大小时,STL自动会分配一块更大的内存(一般而言,vector扩充时,新的容量都是之前的两倍)。但是STL中的内存扩充行为又有着大量的额外操作,这对vector的时间性能也有这负面的影响。因此使用动态数组要尽可能的避免内存扩充。
3:数组与指针的联系:数组的sizeof,元素个数乘以元素的大小。指针的sizeof,32位机器为4bit。当数组作为函数的参数进行传递时,会自动退化为同类型的指针。
相关文章推荐
- [剑指offer]构建乘积数组
- 【剑指offer】面试题 39:数组中出现次数超过一半的数字
- 【剑指offer——JAVA实现】调整数组顺序使奇数位于偶数前面
- 剑指 offer代码解析——面试题38数字在排序数组中出现的次数
- 剑指Offer----面试题29:扩展----数组中第K小的数字
- (C++)剑指offer-37:数字在排序数组中出现的次数(知识迁移能力)
- 剑指offer---连续子数组的最大和、第一个只出现一次的字符的位置
- 剑指offer_数组---数组中只出现一次的数字
- 剑指offer第六题(数组)
- 剑指offer 3.3 代码的完整性4-在O(n)时间内调整数组顺序,使奇数位于偶数前面
- 码农小汪-剑指Offer之26 -数组中出现次数超过一半的数字
- 剑指offer 38-数字在排序数组中出现的次数
- 剑指offer — 数字在排序数组中出现的次数
- 【剑指Offer学习】【面试题29 :数组中出现次数超过一半的数字】
- [剑指offer]连续子数组的最大和
- [剑指offer]数组中的逆序对
- 【剑指Offer学习】【面试题40:数组中只出现一次的数字】
- 剑指offer---调整数组顺序使奇数位于偶数前面
- 剑指offer 面试题14 调整数组顺序使奇数位于偶数前面
- 剑指Offer:面试题14 调整数组顺序使奇数位于偶数掐面