我是靠谱客的博主 传统大炮,最近开发中收集的这篇文章主要介绍合并排序-MergeSort,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

两个排好序的数组合并都很简单,但到具体怎么二分递归及代码实现就脑子短路了
比如递归返回什么?递归到最后怎么排序?
我还以为是每次递归回来就合并再返回到上一层,返回后用啥装呢?……我还以为每次把传过来的数组分成两个数组再进行操作……

也不是说完全想的没道理,就是想的太乱了。

首先,总共需要两个void函数,两个数组。
两个函数分别用来递归和每层递归后的最后的合并;
而一切的操作并不是通过每层创建两个临时数组实现,而是直接在A数组本身上操作,B数组起辅助作用

void mergesort(int a[],int left,int right) {
   
	mergesort(a,left,mid);
    mergesort(a,mid+1,right);
    merge(a,left,

最后

以上就是传统大炮为你收集整理的合并排序-MergeSort的全部内容,希望文章能够帮你解决合并排序-MergeSort所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部