华为云国际站代理商充值: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设计中国 一、华为云的全球布局与优势 华为云作为全球领先的云计算服务提供商,在全球范围内具有广泛的市场布局。华为云不仅在国内市场具有领先地位,同时在国际市场也取得了显著的进展。作为一家拥有强大技术实力的公司,华为云依托其领先的技术和基础设施,为全球用户提供优质的云服务。其优势不仅体现在云计算、人工智能、大数据等领域的领先技术,还体现…

    2025年3月25日
    36800
  • 济宁华为云代理商:agent安装

    济宁华为云代理商:agent安装 华为云的优势 华为云作为全球领先的云计算服务提供商,拥有国际领先的技术实力和服务能力,为客户提供高效、安全、可靠的云计算服务。其在全球范围内建设了多个数据中心,覆盖多个地区,能够为客户提供低延迟、高可用性的服务。 此外,华为云还拥有丰富的产品线,包括基础云计算、大数据、人工智能等多个领域,能够满足不同行业、不同规模客户的需求…

    2024年3月24日
    51000
  • 华为云国际站充值:集成软件开发环境

    华为云国际站充值:集成软件开发环境的价值与优势 一、引言:数字化转型下的开发环境需求 在全球化与数字化转型加速的背景下,企业对高效、安全且可扩展的集成软件开发环境(IDE)需求日益增长。华为云国际站通过其全球化的云服务布局,为开发者提供了一站式云端开发解决方案,支持多语言协作、跨地域部署和智能化开发工具链。 二、华为云国际站的核心优势 1. 全球化基础设施与…

    2025年12月6日
    14900
  • 华为云国际站充值:html5 本地数据库 js

    华为云国际站充值:基于HTML5本地数据库与JS的高效解决方案 一、引言 在全球化数字经济的浪潮下,华为云国际站为企业提供了稳定、安全的云服务支持。针对国际站充值场景,结合HTML5本地数据库与JavaScript技术,能够实现高效、离线的数据处理能力。本文将探讨如何利用这些技术优化充值流程,并分析华为云在此场景中的独特优势。 二、HTML5本地数据库与JS…

    2026年1月2日
    12600
  • 华为云国际站代理商注册:服务器申请

    华为云国际站代理商注册:服务器申请 一、华为云服务器产品介绍 华为云作为全球领先的云计算服务提供商,拥有强大的服务器产品线,包括弹性裸金属服务器、弹性云服务器等多种选择。华为云服务器具有高性能、高可靠性、高安全性等特点,适用于各种不同规模和需求的业务场景。 二、华为云国际站代理商注册流程 1. 登录华为云官网,点击“代理商合作”页面。 2. 填写代理商申请表…

    2024年5月24日
    52500

发表回复

登录后才能评论

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

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

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