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

相关推荐

  • 苏州华为云代理商:ad hoc网络 优点

    苏州华为云代理商:ad hoc网络优点 随着现代科技的发展,ad hoc网络已经成为了通讯领域的一大热门。作为苏州华为云的代理商,我们愿意从宏观和微观两个层面,剖析ad hoc网络的优点,以及华为云如何充分利用这些优势,提供优质的云服务。 一、ad hoc网络的优点 ad hoc网络是一种无需基础设施支持,可以即时自主组网的网络系统。它的主要优点可归纳为以下…

    2024年3月15日
    25700
  • 华为云国际站代理商注册:ftp服务器如何保存文件夹

    要在FTP服务器上保存文件夹,以下是一般的步骤: 连接到FTP服务器: 使用FTP客户端软件(如FileZilla、WinSCP等)或命令行FTP工具(如Windows FTP、Linux上的lftp)。 在FTP客户端中输入FTP服务器的地址、用户名和密码进行连接。 导航到目标目录: 一旦连接成功,根据需要浏览到服务器上的目标目录。 创建新文件夹: 在FT…

    2024年5月15日
    25500
  • 洛阳华为云代理商:安徽网站制作公司

    洛阳华为云代理商:安徽网站制作公司 介绍 华为云是华为公司推出的云计算产品,该产品已经成为全球领先的云计算品牌之一。华为云提供了丰富的云服务,包括弹性计算、数据库、存储、人工智能等多个类别。在云服务市场中,华为云以其卓越的性能和竞争力受到广泛的认可,并且成为了众多企业选择的云服务平台。洛阳华为云代理商——安徽网站制作公司,充分发挥自身技术优势和市场影响力,为…

    2024年3月15日
    26000
  • 华为云国际站代理商:服务器在线监控

    华为云国际站代理商:服务器在线监控 引言 随着数字化转型的不断推进,企业对IT基础设施的依赖日益加深。华为云作为全球领先的云计算服务提供商,凭借其强大的技术实力和丰富的产品线,成为了众多企业的首选。本文将探讨华为云在服务器在线监控方面的优势,帮助企业更好地管理和维护其云环境。 华为云的技术优势 华为云凭借其强大的技术背景和研发能力,提供了一系列先进的云服务,…

    2024年11月3日
    17600
  • 华为云国际站代理商:ftp服务器怎么共享

    华为云国际站代理商:FTP服务器如何共享 引言 随着信息技术的飞速发展,云计算逐渐成为企业数字化转型的核心力量。尤其是对于需要大量数据传输与存储的企业来说,云服务不仅提供了强大的计算和存储能力,还在安全性和可管理性方面提供了巨大的优势。在这种背景下,华为云作为国内领先的云计算服务提供商,其服务器产品成为了众多企业选择的首选。在本文中,我们将探讨如何通过华为云…

    2025年3月29日
    12100

发表回复

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

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

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

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