归并排序2_C

来源:互联网 发布:python 函数执行一次 编辑:程序博客网 时间:2024/05/17 07:43

这几天开始看算法导论。对归并排序的解释,对我来说又新的认识。

首先假设这里有两个数组:                                               
A157911 

B

2

4

6

12

14

 

现在将A 和 B  合并到数组 C 中(C大小为10)

那么我们可以使用插入排序,声明两个指针(数组下标表示),对数组A与B比较,如果A当前值小于B,将A当前值赋给C

A往下移一位,C往下移一位,反之亦然。

图:

157911

2

4

6

12

14

 

1         

 

-----------------------------------------------------------------------------

 

157911

2

4

6

12

14

 

12        

-----------------------------------------------------------------------------

157911

2

4

6

12

14

 

124       

------------------------------------------------------------------------------

最后结果:

 

1245679111214

 

以上要求A,B是有序数组

假如 操作的数组大小为 1   时,那么我们可以看作A,B已经有序。

而归并思想就是这样,从大小为1时,排序生成大小为2的数组,在将大小为2的数组排序生成大小为4的数组。

原创粉丝点击