归并排序
介绍
归并排序和快速排序一样,都是基于分治思想的应用。
通过递归,不断将原数列分为两个数列,然后再分别使其有序,最后通过归并将两个有序子数列合并为新的有序数列。
值得注意的是,与快速排序不同,归并排序是稳定的。
代码实现
[code]void merge_sort(int a[], int l, int r){ if (l >= r) return;//判断区间数据个数,为1则返回 int tmp[100001];//创建临时数组 int mid = l + r >> 1; merge_sort(a, l, mid); merge_sort(a, mid + 1, r); int k = 0, i = l, j = mid + 1;//建立双指针 while (i |