C语言 —— 合并两个有序数组
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语言 —— 合并两个有序数组相关推荐
- LeetCode--88.合并两个有序数组(插入法,排序法)
合并两个有序数组(C, Python) 1. 题目描述 2. 题目分析 3. C语言实现 4. Python语言实现 1. 题目描述 难度:简单 2. 题目分析 这道题比较简单,实现方法有两种: 插入 ...
- 数组-合并两个有序数组(双指针,从后往前)
题意: 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组. 说明: 初始化 nums1 和 nums2 的元素数量分别为 ...
- LeetCode-双指针-88. 合并两个有序数组
88. 合并两个有序数组 思路:归并排序,一长一短,肯定会有一个先放完,放完后把另一个拷贝过去即可. 为了避免覆盖所以从最后开始向前放最大的元素 class Solution {public:void ...
- LeetCode 88合并两个有序数组89格雷编码
微信搜一搜:bigsai 专注于Java.数据结构与算法,一起进大厂不迷路! 算法文章题解全部收录在github仓库bigsai-algorithm,求star! 关注回复进群即可加入力扣打卡群,欢迎 ...
- 合并两个无序数组java_88. 合并两个有序数组
88. 合并两个有序数组 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组. 说明: 初始化 nums1 和 nums2的 ...
- 合并两个有序数组(双/三指针)
今天写作业,合并两个有序数组a和b,时间复杂度要求O(n),空间复杂度要求O(1). 很快想到创建第三个数组c,用双指针初始化指向a和b的头元素,每次选择较大者在c上尾插进去之后,再后移相对应a或者b ...
- 双指针:88. 合并两个有序数组
题目链接 88. 合并两个有序数组 解题思路 一. 合并数组后排序,时间复杂度为O((n+m)log(n+m)) 代码: 快排详解 class Solution {public void merge( ...
- LeetCode 88. 合并两个有序数组 golang
88. 合并两个有序数组 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组. 说明: 初始化 nums1 和 nums2 ...
- 88. 合并两个有序数组 golang
88. 合并两个有序数组 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组. 说明: 初始化 nums1 和 nums2 ...
- 中数组的合并_【美团面试题】合并两个有序数组
[美团面试题]合并两个有序数组 题目描述 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组 划重点 初始化 nums1 和 ...
最新文章
- 更改Apache默认网站根目录
- 想过没有,Spring的Bean为啥默认单例?
- Directx11学习笔记【二】 将HelloWin封装成类
- Vue-router学习(一)- 路由匹配
- 循环计数_倒计数器:CountDownLatch | 循环栅栏:CyclicBarrier
- 右上角鼠标滑过展开收缩动画效果js代码的演示页面
- 苹果“大力鼠”不敌微软“鲨”
- hourstracker 考勤表软件下载
- 苹果手机更改照片大小kb_iPhone调整照片大小方法教程 无需第三方软件
- 芯片流片(晶圆制造)工艺服务的流程。 细节详解连载
- 【慕课网】前端零基础入门---步骤一:页面结构层HTML---01-HTML基础
- 【目标提取】计算机视觉中如何利用颜色和形状提取目标?
- docker限制cpu、内存使用
- nmap下载及安装过程。
- Recoil 的使用
- 画油画,笔触的重要性原来体现在这里~
- 基于scratch构建轻量快速镜像
- Introduction to Fabric.js. Part 3(介绍Fabric.js第三部分)
- 2022年半导体硅片行业研究报告
- JAVA计算机毕业设计读书网络社区设计Mybatis+系统+数据库+调试部署