常见排序算法--合并排序

思路:将一个无序的序列分组,直至分为每两个元素一组(如果有单个元素剩余,则可以剩余的单个元素自己一组),小组内排序,然后合并成一个有序的序列。

例子: 排序过程如图所示:图片摘选自:https://blog.csdn.net/ZY_cat/article/details/78404257

常见排序算法--合并排序_第1张图片

程序实现:

#include   
using namespace std;
void merge(int *data, int p, int q, int r)
{
	int n1, n2, i, j, k;
	n1 = q - p + 1;
	n2 = r - q;
	int *left = new int[n1];
	int *right = new int[n2];
	for (i = 0; i> n;	
	int* input = new int[n];
	cout << "请对数组赋值: " << endl;;
	for (int i = 0; i> input[i];     
	mergeSort(input, 0, n - 1);  
	cout << "合并排序后数组: " << endl;;
	for (int i = 0; i

代码参考:http://blog.sina.com.cn/s/blog_4d3a41f401010jbf.html

运行结果:

常见排序算法--合并排序_第2张图片

你可能感兴趣的:(常见排序算法--合并排序)