秒懂算法:用常识解读数据结构与算法
上QQ阅读APP看书,第一时间看更新

1.9 小结

分析操作需要的步骤数是理解数据结构性能的核心。在程序中选择正确的数据结构决定了程序在处理大量数据时会不会崩溃。在本章中,你已经学习了如何分析特定应用中数组和集合的优劣。

既然已经开始学习如何思考数据结构的时间复杂度,那么就可以用同样的分析法来比较算法(即便使用相同的数据结构)的优劣,以确保代码性能最佳。而那正是第2章的内容。

习题

(1) 已知一个有100个元素的数组,请回答以下操作需要的步骤数。

a. 读取

b. 查找该数组中没有的一个值

c. 在数组开头插入

d. 在数组末尾插入

e. 从数组开头删除

f. 从数组末尾删除

(2) 已知一个基于数组的集合有100个元素,请回答以下操作需要的步骤数。

a. 读取

b. 查找该数组中没有的一个值

c. 在集合开头插入一个新值

d. 在集合末尾插入一个新值

e. 从集合开头删除

f. 从集合末尾删除

(3) 通常,数组的查找操作只寻找给定值的第一个实例。但有时我们想找出它的每一个实例。例如,我们可能想统计"apples"在数组中出现的次数。寻找所有的"apples"需要多少步呢?假设数组中有N个元素。