1.介绍

有许多算法来排序数据。通常,当我们选择排序算法时,我们依赖速度和空间使用等标准。

在本教程中,我们将比较两个流行的排序算法Quicksort.合并。这两种算法都适用征服在性能和存储使用时,以不同方式和不同的属性方法。

2. Quicksort.

Quicksort是一种流行的地理排序算法,适用分行和征服方法。我们可以总结三个主要步骤:

  • 选择一个元素作为枢轴
  • 通过将较小的元素移动到枢轴的左侧和较大的元素到右侧来分区
  • 在每个分区上重复上述步骤,直到我们到达一个排序的列表

让我们通过一个小的例子,我们使用QuickSort对以下列表进行排序:

第一步是我们选择一个枢轴。有不同的方法可以选择枢轴,但对于这个例子,我们将始终选择最右边的元素。

一旦我们挑选出枢轴23,我们需要将大于23的所有元素移动到其右侧,并且所有元素小于23到左侧。请记住,我们并不担心此阶段的订单。金宝搏官网188be我们只是将元素定位在枢轴上。

通过这样做,我们将我们的列表分为两个分区:

现在我们可以在每个分区上重复算法的步骤。由于右上大部分仅由一个元素组成,因此我们可以通过选择5作为枢轴来应用左侧大多数分区[15,3,8,105]的步骤然后组织周围的元素。在我们这样做之后注意我们如何慢慢接近一个排序的集:

现在我们围绕[5]有两个分区,这是[3],这不需要任何进一步的分区,并[15,8,10]。通过挑选10作为枢轴并组织剩下的15和8周围,我们达到了最终排序列表:

对于Quicksort的更深入解释和我们可以选择枢轴的不同方式,我们可以阅读摘要Quicksort文章

接下来,让我们将合并应用于同一阵列,并查看它是如何工作的。

3.合并

Mergeort是另一种分行和征服算法。但是,与Quicksort不同,它不是一个原始算法并且需要临时阵列来存储排序的子阵列。

我们可以将合并分为两个主要步骤:

  • 将列表划分为子列表,直到我们达到一个元素
  • 将子列表合并为排序的子列表,直到我们到达最终排序列表

现在让我们将概念应用于我们前面示例中使用的相同数组。从未失居的列表开始,我们将列表划分为最小的子列表:

现在我们将拍摄每个子列表并将它们合并在一起,确保已对合并的子钻了。我们现在有四个排序的子列表:

再次,我们将使用两个子列表并将它们合并为排序的子列表,给我们提供两个排序的子列表:

最后,我们最后一次应用同样的概念,这将为我们提供最终排序列表:

为了更深入地概述合并算法以及如何实现,我们可以看到这篇文章解释说明如何在链接列表中应用合并类型

4. Mergeort和Quicksort之间的比较

既然我们了解Quicksort和合并工作的想法,让我们看看这两个算法之间的主要差异:

QuickLatex.com呈现

结论

在本文中,我们讨论了两个排序算法:Quicksort和Mergeort。

我们了解了这些方法如何在行动中运行,并在空间方面与它们进行比较,以及时间复杂性,以及其他属性,如稳定性和地理排序。

来宾
0.注释
内联反馈
查看所有评论