我是靠谱客的博主 温柔小懒猪,这篇文章主要介绍合并排序--,现在分享给大家,希望可以做个参考。

合并排序即归并排序,

这个好型是数据结构最后一章查找和排序的知识,这部分还有上一章的各种算法,像最短路径,最小花费似乎都学的很拉

#include<iostream>
using namespace std;
void Merge(int r[], int low, int mid, int high)
{
	int *B = new int[high - low + 1];
	int i = low, j = mid + 1,k=0;
	while (i <= mid && j <= high)
	{
		if (r[i] <= r[j])
		{
			B[k++] = r[i++];
		}
		else 
		{
			B[k++] = r[j++];
		}
	}
	while (i <= mid) B[k++] = r[i++];
	while (j <= high) B[k++] = r[j++];
	for (int i = low,k=0; i <= high; i++)
	{
		r[i] = B[k++];
	}
	delete []B;
}
void MergeSort(int r[], int low, int high)
{
	if (low < high)
	{
		int mid = (low + high) / 2;
		MergeSort(r, low, mid);
		MergeSort(r, mid + 1, high);
		Merge(r, low, mid, high); //先拆分,在融合
	}
}
int main() {
	int r[5] = {1,5,3,4,2};
	MergeSort(r, 0, 4);
	for (int i = 0; i < 5; i++)
	{
		cout << r[i] << " ";
	}
	return 0;
}

最后

以上就是温柔小懒猪最近收集整理的关于合并排序--的全部内容,更多相关合并排序--内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部