看动画学算法之:排序-归并排序

简介

归并排序简称Merge sort是一种递归思想的排序算法。这个算法的思路就是将要排序的数组分成很多小的部分,直到这些小的部分都是已排序的数组为止(只有一个元素的数组)。

然后将这些排序过的数组两两合并起来,组成一个更大一点的数组。接着将这些大一点的合并过的数组再继续合并,直到排序完整个数组为止。

归并排序的例子

假如我们有一个数组:29,10,14,37,20,25,44,15,怎么对它进行归并排序呢?

先看一个动画:

我们来详细分析一下上面例子的运行过程:

首先将数组分为两部分,[29,10,14,37]和[20,25,44,15]。

[29,10,14,37]又分成两部分[29,10]和[14,37]。

[29,10]又被分成两部分[29]和[10],然后对[29]和[10]进行归并排序生成[10,29]。

同样的对[14,37]进行归并排序得到[14,37]。

将[10,29]和[14,37]再次进行归并排序得到[10,14,29,37],以此类推,得到最后的结果。

归并排序算法思想

归并排序主要使

猜你喜欢

转载自blog.csdn.net/superfjj/article/details/107441518