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

相关推荐

  • 华为云国际站代理商充值:分布式数据库云计算

    华为云国际站代理商充值:分布式数据库云计算 在全球云计算市场中,华为云凭借其强大的技术支持和丰富的产品体系,逐渐成为企业的首选。尤其是在分布式数据库和云计算领域,华为云通过强大的计算能力和高效的数据库管理,为全球企业提供了卓越的云服务解决方案。本文将从华为云的优势、分布式数据库的特点以及代理商充值的实际应用等方面展开详细介绍。 一、华为云的独特优势 1. 技…

    2024年10月27日
    6000
  • 华为云国际站代理商注册:cdn防御内容分发

    华为云国际站代理商注册:CDN防御内容分发 引言 随着互联网的高速发展和全球数据流量的爆炸性增长,如何有效管理和加速内容的分发已经成为各大企业面临的重要问题。内容分发网络(CDN)作为一种优化互联网内容传输的解决方案,正逐步成为全球互联网基础设施的重要组成部分。华为云作为领先的云计算服务提供商,通过其强大的云计算平台,为企业提供高效、可靠、安全的CDN服务。…

    2024年12月6日
    5500
  • 济宁华为云代理商:app计划书模板

    济宁华为云代理商:app计划书模板 一、引言 在当今快速发展的移动应用市场中,开发一款成功的APP已成为各企业竞争的重要手段。本文旨在为济宁地区的企业提供一份APP计划书模板,帮助企业更好地规划和实施自身APP的开发与推广工作。 二、APP计划书模板 2.1 APP概述 通过简要描述APP的目标、功能和核心特点,使决策者对APP有基本的了解。 2.2 市场分…

    2024年1月22日
    14000
  • 华为云国际站代理商注册:服务器上保存私钥

    华为云国际站代理商注册:服务器上保存私钥 随着云计算技术的快速发展,越来越多的企业和个人选择使用云服务来提升自身的业务能力和效率。而华为云作为全球领先的云服务提供商,凭借其强大的技术能力和全球化网络,逐渐成为市场上的佼佼者。对于想要加入华为云国际站代理商的用户来说,了解如何在服务器上安全地保存私钥是非常重要的一步。本文将详细探讨在华为云服务器上保存私钥的方法…

    2024年10月14日
    9200

发表回复

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

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

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

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