相关疑难解决方法(0)

构造新的已排序数组的最有效方法是什么?

背景

有关排序的大多数问题都涉及对现有未排序数组进行排序。按排序顺序构造一个新数组是等效问题还是不同问题?这是一个可以澄清问题的示例:

例子

我正在生成N随机数,并希望在生成它们时将它们插入到新数组中,并且希望对最终数组进行排序。

可能的解决方案

插入排序

我的直觉告诉我,将每个元素放在生成的正确位置会是最快的。这是通过执行二分搜索来找到数组中插入新元素的正确点来完成的。然而,这是一种插入排序,众所周知,它在大型列表上的效率低于其他排序算法。

快速排序

快速排序通常被认为是最有效的“通用”排序算法,其中对数组的输入一无所知,并且它比大型列表上的插入排序更有效。因此,是否最好简单地将随机数以未排序的顺序放入数组中,然后在最后使用快速排序对它们进行排序?

其他解决方案

还有其他我没有想到的算法吗?

arrays sorting

6
推荐指数
2
解决办法
1万
查看次数

如何在添加数据时对数据进行排序,而不是以后?

我是算法的新手,所以请原谅我,如果这听起来很基本或愚蠢.

我想知道这一点:不是将数据添加到某种列表中然后在列表上执行排序,而是有一种方法(数据结构+算法)可以让我在添加数据时对数据进行排序,或者放入换句话说,将数据插入适当的位置?

例如:如果我想在{1,5,6}添加'3',而不是在开头或结尾添加它然后对列表进行排序,我希望'3'直接在'1'之后".

谢谢

sorting algorithm data-structures

2
推荐指数
1
解决办法
249
查看次数

标签 统计

sorting ×2

algorithm ×1

arrays ×1

data-structures ×1