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