归并排序也可以叫合并排序,英文单词叫做merge它是与插入排序、交换排序、选择排序不同
的一类排序方法,不同之处在于:它要求:待排序序列是由若干个有序子序列组成。
一、基本思想:
归并排序是将两个或两个以上的有序序列合并成一个新的有序序列。本篇文章介绍的就是归并排序主要是将两个有序数据序列合并成一个新的有序序列 。
合并的方法是比较各子序列的第一个记录的键值,最小的一个就是排序的第一个记录的键值。取出这个记录,继续比较各子序列现有的第一个记录的键值,便可以找出排序后的第二个键值。然后开始递归,最终得到排序结果。所以归并排序的基础就是合并。
1)有序序列的合并
归并排序的核心是:两个有序子序列的合并。
此算法的执行时间为:O(n-h+1)。
2)二路归并排序
二路归并排序是将两个有序表合并成一个有序表的排序方法。
二路归并排序是稳定的。
归并排序算法的时间复杂度为O(nlog2n)。(其过程需要logn趟,每趟的复杂度O(n)因此时间的复杂度为O(nlog2n))
二、Java代码如下:
1 | public class guiBingpaixu2 { |
运行结果如下: