华为云国际站代理商充值:c语言写归并算法

以下是在C语言中编写的归并排序算法:

#include<stdlib.h>
#include<stdio.h>
  
void merge(int arr[], int l, int m, int r)
{
    int i, j, k;
    int n1 = m - l + 1;
    int n2 = r - m;

    int L[n1], R[n2];
 
    for (i = 0; i < n1; i++)
        L[i] = arr[l + i];
    for (j = 0; j < n2; j++)
        R[j] = arr[m + 1+ j];
  
    i = 0; 
    j = 0; 
    k = l; 
    while (i < n1 && j < n2)
    {
        if (L[i] <= R[j])
        {
            arr[k] = L[i];
            i++;
        }
        else
        {
            arr[k] = R[j];
            j++;
        }
        k++;
    }
  
    while (i < n1)
    {
        arr[k] = L[i];
        i++;
        k++;
    }
  
    while (j < n2)
    {
        arr[k] = R[j];
        j++;
        k++;
    }
}

void mergeSort(int arr[], int l, int r)
{
    if (l < r)
    {
        int m = l+(r-l)/2;
 
        mergeSort(arr, l, m);
        mergeSort(arr, m+1, r);
  
        merge(arr, l, m, r);
    }
}
 
void printArray(int A[], int size)
{
    int i;
    for (i=0; i < size; i++)
        printf("%d ", A[i]);
    printf("n");
}
 
int main()
{
    int arr[] = {12, 11, 13, 5, 6, 7};
    int arr_size = sizeof(arr)/sizeof(arr[0]);
 
    printf("Given array is n");
    printArray(arr, arr_size);
  
    mergeSort(arr, 0, arr_size - 1);
  
    printf("nSorted array is n");
    printArray(arr, arr_size);
    return 0;
}

以上例子中,merge() 函数用于合并两个子数组,mergeSort() 相当于主函数,主要是完成递归分解,并调用 merge() 进行合并,printArray() 则是用于打印数组。

参考资料:https://www.geeksforgeeks.org/merge-sort/

发布者:luotuoemo,转转请注明出处:https://www.jintuiyun.com/172775.html

(0)
luotuoemo的头像luotuoemo
上一篇 2024年3月31日 17:29
下一篇 2024年3月31日

相关推荐

  • 宁波华为云代理商:安陆网站建设

    宁波华为云代理商:安陆网站建设 华为云的优势 高性能稳定性:华为云服务器采用全新的硬件设施、网络架构和软件技术,提供更加高效稳定的服务性能。 灵活性:华为云服务器可根据客户需求开通或释放,支持按小时计费模式,大大降低客户成本。 安全可靠:华为云服务器拥有防火墙、DDoS攻击防护、SSL证书等多重防护措施,确保客户数据及应用的安全可靠。 全面的技术支持:华为云…

    2024年3月15日
    4600
  • 沈阳华为云代理商:安全评价对象

    body { font-family: Arial, sans-serif; padding: 20px; } h1 { font-size: 24px; color: #333; text-align: center; margin-bottom: 20px; } h2 { font-size: 20px; color: #666; margin-top:…

    2024年3月20日
    3500
  • 华为云国际站代理商:cdn 动态

    华为云国际站代理商:CDN 动态 随着互联网的发展,内容分发网络(Content Delivery Network,简称CDN)在全球范围内变得越来越重要。作为领先的云计算服务提供商,华为云在CDN领域有着突出的优势。本文将围绕华为云国际站代理商的CDN动态展开,介绍华为云CDN的优势、主要功能、应用场景等内容,并结合华为云服务器产品进行综合分析。 华为云C…

    2024年8月4日
    2200
  • 华为云国际站代理商注册:潮州网站seo推广

    华为云国际站代理商注册: 潮州网站 SEO 推广的优势 华为云国际站代理商注册的优势 作为一家全球领先的云计算服务提供商,华为云为企业提供了一系列优质的云计算解决方案。对于想要进行网站 SEO 推广的潮州企业来说,注册成为华为云国际站代理商可以带来许多优势。 全球化布局,拓展国际市场 华为云在全球拥有众多数据中心和节点,可以为企业提供覆盖全球的网络服务。作为…

    2024年5月20日
    3400
  • 华为云国际站代理商:服务器进windows重启

    关于 “华为云国际站代理商:服务器进windows重启” 的问题,通常涉及到服务器在操作系统(如Windows)启动或运行中出现问题,需要进行重启的情况。这里有几个可能的解决步骤和建议: 故障排查: 检查硬件问题:首先确保服务器的硬件没有问题,比如检查硬盘、内存和其他关键组件是否正常工作。 系统日志:查看Windows系统的事件查看器…

    华为云 2024年5月12日
    3900

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
购买阿里云服务器请访问:https://www.4526.cn/