归并排序

归并排序

归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并

归并排序是一种稳定的排序算法,其时间复杂度为:O(nlogn)

算法思路(从小到大): 1、对于一组数据a[N],申请临时空间,temp[N],用于临时存放数据,划分为两个序列 2、设置两个指针分别指向两个序列的首部,其中中间数据mid=(start+end)/2划分到前一个序列当中 3、比较两个指针所指向的数据,选择相对小的元素放入到合并空间,并移动指针到下一位置 4、重复步骤3,直到这两个指针的某个指针超出自身所指向序列 5、将另外一个序列全部依次放入到临时数组中(合并空间)

merge-sort

运行结果为:

merge-sort-2

参考资料

本文参考此博客。

Last updated

Was this helpful?