C语言解决数组相关问题——合并有序数组

  • 一、问题描述
  • 二、解题思路
  • 三、图文描述
  • 四、代码展示

一、问题描述

给定两个有序整形数组arr1 和 arr2,将arr1 与 arr2合并或者有序输出成为一个有序数组。

二、解题思路

1.给定的是两个有序数组且没有指定元素个数,所有首先先把两个有序数组的元素个数求出来。
2.这里我们给大家介绍的是双指针法:
(1)我们初始两个整形变量p1、p2分别指向两个有序数组的首元素地址。
(2)比较两个元素的数值,若p1指向的数值小,则打印输出在屏幕上且给p1++ 指向下一个元素,反之同理。

三、图文描述

四、代码展示

#include <stdio.h>//合并两个有序数组
int main()
{int arr1[] = { 1,3,5,7,9 ,10,13,15},arr2[] = {2,4,6,8,10};int len_arr1 = sizeof arr1 / sizeof(arr1[0]), len_arr2 = sizeof arr2 / sizeof(arr2[0]);int i = 0, j = 0;while (i < len_arr1 && j < len_arr2){while (i < len_arr1 && j < len_arr2 && arr1[i] <= arr2[j]){printf("%d ", arr1[i]);i++;}while (i < len_arr1 && j < len_arr2 && arr2[j] < arr1[i]){printf("%d ", arr2[j]);j++;}}//此时至少有一个有序数组已经遍历完,打印剩余的有序数组if (i == (len_arr1 + 1)){for (; j < len_arr2; j++){printf("%d ", arr2[j]);}}else{for (; i < len_arr1; i++){printf("%d ", arr1[i]);}}return 0;
}

结果展示:

C语言 —— 合并两个有序数组相关推荐

  1. LeetCode--88.合并两个有序数组(插入法,排序法)

    合并两个有序数组(C, Python) 1. 题目描述 2. 题目分析 3. C语言实现 4. Python语言实现 1. 题目描述 难度:简单 2. 题目分析 这道题比较简单,实现方法有两种: 插入 ...

  2. 数组-合并两个有序数组(双指针,从后往前)

    题意: 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组. 说明: 初始化 nums1 和 nums2 的元素数量分别为 ...

  3. LeetCode-双指针-88. 合并两个有序数组

    88. 合并两个有序数组 思路:归并排序,一长一短,肯定会有一个先放完,放完后把另一个拷贝过去即可. 为了避免覆盖所以从最后开始向前放最大的元素 class Solution {public:void ...

  4. LeetCode 88合并两个有序数组89格雷编码

    微信搜一搜:bigsai 专注于Java.数据结构与算法,一起进大厂不迷路! 算法文章题解全部收录在github仓库bigsai-algorithm,求star! 关注回复进群即可加入力扣打卡群,欢迎 ...

  5. 合并两个无序数组java_88. 合并两个有序数组

    88. 合并两个有序数组 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组. 说明: 初始化 nums1 和 nums2的 ...

  6. 合并两个有序数组(双/三指针)

    今天写作业,合并两个有序数组a和b,时间复杂度要求O(n),空间复杂度要求O(1). 很快想到创建第三个数组c,用双指针初始化指向a和b的头元素,每次选择较大者在c上尾插进去之后,再后移相对应a或者b ...

  7. 双指针:88. 合并两个有序数组

    题目链接 88. 合并两个有序数组 解题思路 一. 合并数组后排序,时间复杂度为O((n+m)log(n+m)) 代码: 快排详解 class Solution {public void merge( ...

  8. LeetCode 88. 合并两个有序数组 golang

    88. 合并两个有序数组 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组. 说明: 初始化 nums1 和 nums2 ...

  9. 88. 合并两个有序数组 golang

    88. 合并两个有序数组 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组. 说明: 初始化 nums1 和 nums2 ...

  10. 中数组的合并_【美团面试题】合并两个有序数组

    [美团面试题]合并两个有序数组 题目描述 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组 划重点 初始化 nums1 和 ...

最新文章

  1. 更改Apache默认网站根目录
  2. 想过没有,Spring的Bean为啥默认单例?
  3. Directx11学习笔记【二】 将HelloWin封装成类
  4. Vue-router学习(一)- 路由匹配
  5. 循环计数_倒计数器:CountDownLatch | 循环栅栏:CyclicBarrier
  6. 右上角鼠标滑过展开收缩动画效果js代码的演示页面
  7. 苹果“大力鼠”不敌微软“鲨”
  8. hourstracker 考勤表软件下载
  9. 苹果手机更改照片大小kb_iPhone调整照片大小方法教程 无需第三方软件
  10. 芯片流片(晶圆制造)工艺服务的流程。 细节详解连载
  11. 【慕课网】前端零基础入门---步骤一:页面结构层HTML---01-HTML基础
  12. 【目标提取】计算机视觉中如何利用颜色和形状提取目标?
  13. docker限制cpu、内存使用
  14. nmap下载及安装过程。
  15. Recoil 的使用
  16. 画油画,笔触的重要性原来体现在这里~
  17. 基于scratch构建轻量快速镜像
  18. Introduction to Fabric.js. Part 3(介绍Fabric.js第三部分)
  19. 2022年半导体硅片行业研究报告
  20. JAVA计算机毕业设计读书网络社区设计Mybatis+系统+数据库+调试部署

热门文章

  1. 病毒分析四:steam盗号病毒
  2. 8uftp连接服务器设置
  3. springBean生命周期
  4. 如何使用Erdas裁剪万能地图下载器下载的谷歌卫星地图
  5. “当初要是早有人跟我说这些......“
  6. 50道SQL练习题及答案与详细分析
  7. Web渗透测试实战:基于Metasploit 5.0
  8. 倍加福二维码测试1-串口助手测试
  9. DIY一款600元成本的电路板热成像故障分析仪
  10. 高仿TIMI页面易语言源码-已对接易游网络验证