我正在使用一个数组和另一个使用链表的二进制搜索树实现。输入的是10 ^ 6个键,并且两种实现都花费相同的时间来插入键。因为创建了10 ^ 6个新对象,所以链接列表不应该花更多时间,而在数组中,我不创建新对象,而是插入。
我不需要代码方面的帮助。
我总是从复杂性角度考虑它。
具有排序数组的二进制搜索的复杂度为O(log N)
。
具有排序的单个链表的二进制搜索的复杂度为O(N)
。
二进制搜索对于数组通常是快速而有效的,因为访问两个给定索引之间的中间索引既简单又快速(O(1))。但是,单链接列表的内存分配是动态且不连续的,这使得查找中间元素变得困难。一种方法是使用跳过列表,一种方法是使用一个指针遍历链接列表。
您是否使用单个链接列表?