华为云国际站代理商充值: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日 17:44

相关推荐

  • 华为云代理商:cdn极速优化

    华为云代理商:CDN极速优化 在数字化转型和信息化建设不断深入的背景下,内容分发网络(CDN)已经成为了企业实现网站加速、提高用户体验的必备技术工具。作为全球领先的ICT(信息与通信技术)解决方案提供商,华为云在CDN领域通过创新的技术架构和强大的网络能力,为企业提供了极速优化的解决方案。作为华为云代理商,如何通过华为云CDN技术优化网站性能,提升用户体验,…

    2024年11月21日
    51300
  • 华为云国际站代理商充值:cdn企业客户有哪两种方式

    华为云国际站代理商充值:CDN企业客户有哪两种方式 随着云计算技术的快速发展,越来越多的企业开始将自身的业务迁移到云端。作为全球领先的云服务提供商,华为云不仅提供了丰富的云产品,还针对不同的客户群体推出了多种便捷的服务方式。特别是对于CDN(内容分发网络)企业客户,华为云提供了灵活的充值方式,帮助企业高效管理资源和优化运营成本。 一、华为云CDN简介 在了解…

    2024年12月5日
    49700
  • 华为云代理商:服务器部署html文件路径

    华为云代理商:服务器部署html文件路径 简介 作为华为云的代理商,服务器的部署工作是至关重要的。本文将重点介绍华为云服务器部署html文件路径的相关知识,帮助代理商更好地理解和使用华为云的产品。 华为云服务器部署html文件路径的意义 在代理商的业务中,部署html文件是非常常见的操作。html文件可以包含产品介绍、价格信息、联系方式等内容,为代理商提供一…

    2024年5月22日
    52700
  • 华为云国际站代理商充值:服务器之间通信

    当你需要在华为云国际站上作为代理商充值时,通常情况下你是为了支持业务运行,例如服务器之间的通信。服务器之间的通信是数据中心管理中的一个重要方面,确保各个服务间可以高效、安全的交换信息。 服务器之间通信的关键要素: 网络连接: 无论是在同一个数据中心内还是跨数据中心,网络设施都必须支持高带宽和低延迟的连接。 采用光纤连接或高速以太网通常能提供更好的性能。 安全…

    2024年4月29日
    53600
  • 华为云国际站代理商充值:ftp服务器 上传

    华为云国际站代理商充值:FTP服务器上传 随着云计算技术的飞速发展,越来越多的企业开始向云平台迁移数据和应用。华为云作为全球领先的云服务提供商之一,凭借其强大的技术实力和全球化布局,已经成为众多企业选择的云平台。在华为云的众多服务中,FTP服务器上传功能作为一种常见的数据传输方式,深受广大代理商和用户的青睐。 一、华为云的优势概述 华为云在全球云计算市场中占…

    2025年3月24日
    43300

发表回复

登录后才能评论

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

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

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