博客
关于我
LeetCode:面试题 10.01. Sorted Merge LCCI合并排序的数组(C语言)
阅读量:390 次
发布时间:2019-03-05

本文共 731 字,大约阅读时间需要 2 分钟。

为了将两个已排序的数组 A 和 B 合并成一个有序数组,我们可以按照以下步骤进行:

  • 复制 B 到 A 的后面:将 B 的所有元素复制到 A 的后面,从 A[m] 开始,直到 A[m + n]。
  • 排序整个数组:对整个数组(A 和 B 的组合)进行排序。
  • 这个方法确保了合并后的数组是已排序的。

    题目描述:给定两个排序后的数组 A 和 B,其中 A 的末端有足够的缓冲空间容纳 B。编写一个方法,将 B 合并入 A 并排序。

    初始化 A 和 B 的元素数量分别为 m 和 n。

    示例:

    输入: A = [1,2,3,0,0,0], m = 3; B = [2,5,6], n = 3

    输出: [1,2,2,3,5,6]

    说明:

    A.length == n + m

    解答:

              int cmp(const void *a, const void *b) {          return *(int*)a - *(int*)b;      }      void merge(int* A, int ASize, int m, int* B, int BSize, int n) {          memcpy(A + m, B, sizeof(int) * n);          qsort(A, m + n, sizeof(int), cmp);      }      

    运行结果:代码正确运行后,输出为 [1,2,2,3,5,6]。

    转载地址:http://wvdzz.baihongyu.com/

    你可能感兴趣的文章
    Mybatis入门之增删改查
    查看>>
    [菜鸟的设计模式之旅]观察者模式
    查看>>
    Spring-继承JdbcDaoSupport类后简化配置文件内容
    查看>>
    Java基础IO流(一)
    查看>>
    Hibernate入门(二)——hibernateAPI详解
    查看>>
    Hibernate入门(四)---------一级缓存
    查看>>
    MySQL事务(学习笔记)
    查看>>
    一个web前端开发者的日常唠叨
    查看>>
    内存分配-slab分配器
    查看>>
    技术写作技巧分享:我是如何从写作小白成长为多平台优秀作者的?
    查看>>
    Jupyter Notebook 暗色自定义主题
    查看>>
    [Python学习笔记]组织文件
    查看>>
    DCL之单例模式
    查看>>
    什么?你竟然还没有用这几个chrome插件?
    查看>>
    将你的前端应用打包成docker镜像并部署到服务器?仅需一个脚本搞定
    查看>>
    【俗话说】换个角度理解TCP的三次握手和四次挥手
    查看>>
    基于Redo Log和Undo Log的MySQL崩溃恢复流程
    查看>>
    消息队列杂谈
    查看>>
    从RocketMQ的Broker源码层面验证一下这两个点
    查看>>