在有序简单列表中插入元素的最有效算法是什么

时间:2018-11-19 09:58:37

标签: algorithm sorting

哪个是在有序列表中插入新元素的最佳算法? 假设我有一个列表[1,3,8,10,14,20],我想插入元素9。

我不是在谈论编程语言,而是在谈论最有效的算法。

Tks

ps .:我不确定插入排序是否是最好的。

2 个答案:

答案 0 :(得分:2)

要插入单个元素,请从头开始遍历列表,直到找到插入点,然后(通过指针操作)插入新元素。

如果您需要插入许多元素,并且列表不一定必须一直都在排序,那么最好在前面插入新元素然后进行最终排序。

答案 1 :(得分:0)

插入新元素将花费几乎相同的时间,无论算法是否为数组。为了更好地解释它:

在算法中,您将始终需要一个O(n)复杂度部分来移动插入元素之后的数组元素,以腾出空间放置该元素。

您最好的选择是降低搜索复杂度,而最好的方法是使用二进制搜索,其复杂度为O(log n)

使用此插件,插入的复杂度为(n + log n),与O(n)相同。

要提高效率,您需要选择一个更好的数据结构,该结构具有恒定的插入时间,例如二叉搜索树或某种堆。