顺序查找对于有序序列/链表和无序序列/链表都可行,但二分查找就只能对有序序列进行查找了。二分查找在查找时速度较快(lgN),不过它对序列的有序要求会导致节点插入时间的增加(相对无序序列/链表)。
《算法》总结了一个表如下:
算法(数据结构) | 最坏情况下的成本 (N次插入后) | 平均情况下的成本 (N次随机插入后) | 是否高效地支持有序性相关的操作 | ||
查找 | 插入 | 查找 | 插入 | ||
顺序查找(无序链表) | N | N | N/2 | N | 否 |
二分查找(有序数组) | lgN | 2N | lgN | N | 是 |
相关的程序代码请参考Github.