[c语言]将两个整形升序数组合并为一个升序数组
来源:互联网 发布:阿里云edas 知乎 编辑:程序博客网 时间:2024/06/14 05:30
可能大多数人首先想到的是将两个数组合并,然后将合并后的数组排序输出。但是题目要求合并完即为一个升序数组,这样做不合题意。可以利用已知条件(两数组A、B均为升序),循环在每个数组中均选取一个元素来对比,较小的放到新数组C中。直到一个数组中的元素已全部放入C中,此时将另一个数组未放入的元素全放入到C中,代码如下。
//// main.c// c-last//// Created by 赵亚北 on 14-7-10.// Copyright (c) 2014年 zyb. All rights reserved.//int main(int argc, const char * argv[]){int str1[5]={3,6,7,45,55};//两个升序数组int str2[5]={8,10,11,22,25};int out[10];//输出数组int i=0,j=0,k=0;while (i<5&&j<5){//循环将较小元素放入C if (str1[i]<str2[j]) { out[k]=str1[i]; i++; k++; } else{ out[k]=str2[j]; j++; k++; }}//whileif(i==5){//第1个数组元素已经全部放到C中,将第2个数组剩余元素全放到C中 while (j<5) { out[k]=str2[j]; k++; j++; }}if(j==5){//第2个数组元素已经全部放到C中,将第1个数组剩余元素全放到C中 while (i<5) { out[k]=str1[i]; k++; i++; } }for(int i=0;i<10;i++){ printf("%d ",out[i]);}}
运行结果为:
0 0
- [c语言]将两个整形升序数组合并为一个升序数组
- 编写一个程序,输入两个包含 5 个元素的数组,先将两个数组升序排序,然 后将这两个数组合并成一个升序数组(合并排序)。
- 将两个有序数组归并为一个升序数组-Java实现
- 两升序数组合并成一个升序数组
- 合并两升序数组称为一个升序数组算法
- 将两个整形数组排序后合并成一个数组
- C语言在数组中插入一个数,升序降序
- 数据结构 - 有两个链表,第一个升序,第二个降序,合并为一个升序链表(C++)
- 把两个升序数组按升序合并到另一个数组中
- 【代码】N个非定长升序数组 合并成一个升序数组
- 两个升序数组的中位数
- 将两个升序链表合并成一个 升序链表
- 两个链表一升一降,合并为一个升序链表。
- C语言合并两个带头节点升序排列链表
- 找出升序数组中和为给定值的两个数字
- 找出升序数组中和为给定值的两个数字
- 找出升序数组中和为给定值的两个数字
- 找出升序数组中和为给定值的两个数字
- strncpy的使用示例
- php 服务端 写日志
- Android 获取当日时间的方法
- android开发新浪微博客户端 完整攻略
- Android webservice 交互
- [c语言]将两个整形升序数组合并为一个升序数组
- 匈牙利算法(写的好)
- 正则表达式小结
- 使用jquery.daterange.js双日历控件时,daterangepicker初始化默认日期
- Linux之进程
- ubuntu系统截图
- uptime,Top,Free,PS,Pstree,VMStat,SysStat
- flex4 父子页面数据交互实现(回调函数)
- C++ enum用法