排序算法-中级篇(归并排序)
在另一篇中级篇我提到了堆排序它的时间复杂度为O(nlogn),我现在要回顾的也是另一个时间复杂度为O(nlogn)的排序算法-归并排序,实现的时候我采用的二分递归调用,算法的关键是如何对两个已经有序的序列进行归并。其实很简单,遍历两个有序的序列,把小的(或大的)插入临时数组中,一直做这样的操作直到遍历完两个序列。
实现代码如下:
运行结果:
在另一篇中级篇我提到了堆排序它的时间复杂度为O(nlogn),我现在要回顾的也是另一个时间复杂度为O(nlogn)的排序算法-归并排序,实现的时候我采用的二分递归调用,算法的关键是如何对两个已经有序的序列进行归并。其实很简单,遍历两个有序的序列,把小的(或大的)插入临时数组中,一直做这样的操作直到遍历完两个序列。
实现代码如下:
运行结果: