首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++中的归并排序函数

C++中的归并排序函数
EN

Stack Overflow用户
提问于 2020-06-02 21:50:20
回答 1查看 51关注 0票数 0

我有下面这段代码,它代表一个合并排序函数

代码语言:javascript
复制
/* perform merge sort */
void merge_sort(int arr[], int left, int right) {
    if (left < right) {
        int middle = left + (right - left) / 2;
        merge_sort(arr, left, middle);
        merge_sort(arr, middle + 1, right);
        merge(arr, left, middle, right);
    }
}

merge_sort(arr, middle + 1, right);的用途是什么

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-02 22:18:48

merge sort algorithm的基本思想是将要排序的序列一分为二,分别排序,然后将它们合并在一起。这通常是递归完成的,如本例所示。因此,必须有两个递归调用,每个递归调用对应于序列的一半。

如果不存在merge_sort(arr, middle+1, right);调用,则算法将不完整,排序将不起作用。

作为实验,您可以尝试使用您发布的合并排序函数编写一个示例程序。在有问题的行和不带行的情况下尝试一下,看看会得到什么结果。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62153608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档