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

相关推荐

  • 华为云国际站代理商充值:番禺做网站设计

    华为云国际站代理商充值:番禺做网站设计的优势 在当今信息化和数字化的快速发展时代,越来越多的企业和个人开始关注并投资于网站建设,以提升品牌形象和业务发展。而在这一过程中,选择一个可靠、高效且安全的云服务平台至关重要。华为云作为全球领先的云计算服务提供商,其强大的技术优势和全面的产品解决方案已经吸引了越来越多的企业用户,尤其是在做网站设计和建设方面,华为云具有…

    2024年12月3日
    12600
  • 华为云代理商:此域名生效

    华为云代理商:此域名生效 华为云作为国内领先的云计算服务提供商,凭借其卓越的技术实力和丰富的产品生态,为企业数字化转型提供了坚实的支持。在本文中,我们将围绕“华为云代理商:此域名生效”这一主题,探讨华为云代理商的优势,并结合华为云服务器产品的特点进行详细阐述。 1. 华为云代理商的优势 作为华为云的代理商,企业不仅能够享受到华为云强大的技术支持,还能利用华为…

    2024年8月22日
    19900
  • 华为云国际站代理商充值:防火墙入站规则

    华为云国际站代理商充值:防火墙入站规则 在云计算时代,云服务平台的安全性已成为用户关注的重点。随着企业数字化转型的推进,云服务器已成为企业基础设施的重要组成部分。作为全球领先的云服务提供商之一,华为云凭借其先进的技术和强大的安全防护能力,赢得了全球客户的信赖。在本篇文章中,我们将重点探讨华为云国际站代理商充值与防火墙入站规则的设置,帮助用户在使用华为云服务器…

    2025年3月24日
    10900
  • 华为云国际站代理商注册:ftp服务器三次握手

    华为云国际站代理商注册:FTP服务器三次握手 一、引言 在数字化浪潮推动下,云计算服务已经成为企业IT基础设施的重要组成部分。随着云计算技术的迅速发展,越来越多的企业选择了云计算平台来托管自己的数据、应用和服务。在众多云服务平台中,华为云凭借其强大的技术支持和全球布局,成为了许多企业的优选平台。 在本文中,我们将讨论华为云国际站代理商注册过程中的一个重要技术…

    2025年3月25日
    9800
  • 华为云国际站代理商充值:服务器配置上机模拟

    华为云国际站代理商充值:服务器配置上机模拟 随着云计算技术的不断发展,越来越多的企业和开发者开始选择云服务平台作为其信息技术基础架构的核心。而华为云,作为国内领先的云服务提供商之一,其全球化的布局和高效、可靠的云服务吸引了大量用户的关注。在华为云的国际站平台上,代理商通过充值、配置和管理云服务器,为客户提供专业的云服务。在本文中,我们将详细介绍华为云国际站代…

    2024年11月26日
    12500

发表回复

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

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

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

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