11得票1回答
算法:混合归并排序和插入排序的执行时间

大家好,SO社区:我是一名计算机科学专业的学生,目前正在进行一项实验,将MergeSort和InsertionSort相结合。我们知道,在特定阈值S下,InsertionSort的执行时间比MergeSort更快。因此,通过合并这两种排序算法,可以优化总运行时间。然而,经过多次实验,使用100...

10得票3回答
排序时出现的非常奇怪的效率问题

我目前正在学习数据结构课程,而我们需要做的事情之一就是编写一些常见的排序算法。在编写我的插入排序算法时,我注意到它比我的教师的算法要快得多(对于400000个数据点,我的算法需要大约30秒,而他的算法则需要90秒)。我将我的代码发送给了他,当它们在同一台机器上运行时,两者得到相同的结果。我们花...

10得票5回答
插入排序比冒泡排序更好吗?

我正在为考试复习。 想知道在平均时间复杂度相同时,何时插入排序的性能比冒泡排序好。 我找到了一些相关文章,但我看不懂。 有没有人能简单地解释一下?

10得票1回答
iOS:如何在已排序的NSMutableArray中找到插入位置

我有一个已排序的对象NSMutableArray,这些对象在UITableView中显示。 我想要将新对象插入数组并更新表视图 - 这需要知道新插入对象的索引。 我找不到任何系统消息来告诉我正确的插入索引,以便我可以更新表视图。 我能找到的最好方法是: 添加新对象 排序 使用旧的数组...

10得票6回答
一个适用于包含时间数据的几乎有序列表的高效排序算法?

名称已经说明了一切。我认为插入排序是最好的选择,因为它通常是大多数情况下最好的排序算法。但是,由于我更了解数据,所以还有其他的排序算法值得考虑。以下是其他相关信息: 1)这是时间数据,这意味着我可以为数据的排序创建一个有效的哈希表。 2)数据不会全部同时存在,而是我将读取可能包含单个向量、十...

8得票4回答
如何从几乎已排序的链表中分离出错位的元素?

我是一个几乎排过序的链表,至少包含两个元素,这些元素都是不同的,只有1个元素不在它应该在的位置上。以下是一些示例: 28 (144) 44 52 60 60 68 76 84 (65) 100 结构体如下所示: struct node {node * next; int val;} ...

7得票25回答
如何在单个循环中对数组进行排序?

我正在研究不同的排序算法。但几乎所有的排序算法都需要2个循环来对数组进行排序。冒泡排序和插入排序的最好情况下时间复杂度为O(n),但最坏情况下时间复杂度为O(n^2),仍然需要2个循环。有没有办法在单个循环中对数组进行排序?

7得票7回答
尝试理解插入排序算法

我正在阅读一些关于Python编程、数据结构以及算法分析与设计的书籍。我希望真正理解编码的细节,并成为一名高效的程序员。由于难以向书本求证,因此我在stackoverflow上提出了问题。我发现算法和递归很具有挑战性...我在下面发布了一些代码(插入排序),我正在尝试准确理解其中发生了什么。我...

7得票2回答
如何将函数式插入排序代码改为尾递归

最近我用函数式编程风格实现了插入排序算法,代码变得更加简洁和声明性。问题是如何将其转换为尾递归形式,如果列表的大小增长到10000,该代码将抛出异常。 def InsertSort(xs: List[Int]): List[Int] = xs match { case Nil =&g...