当前位置: 首页 > news >正文

数组合并小程序

题目:

输入有序数组a, b, 不使用排序算法,及额外数组,按大小顺序合并a, b数组,元素不重复;

思路:

1. 如果比插入的数组大,那么往后插入,如果继续有大的,就移动位置插入;

2. 遍历完所有要插入的元素;

3. 一个函数专门用于查找可以插入的位置,对于重复的数据,查找到的未知有可能是重复的,那么要跳过;

4. 一个函数专门用于插入动作,插入方法就是先整体移动位置,然后插入;

/*

这里一个一个插入是有效率问题的,为了程序简单,没有处理,如果有一批插入元素都在范围内,可以整体插入,但是实现条件会更多。

*/

代码实现:

#include <iostream>
#include <math.h>
#include <string>using namespace std;
int data_array_a[MAX_ARRAY_SIZE]={1,2,3,0,0,0};
int data_array_b[MAX_ARRAY_SIZE]={2,5,6};void insert_element(int *array_a, int pos, int *a_length, int element)
{   int tmp = 0;int i = pos+1;int j = *a_length;for(i = 0; i<(*a_length - pos); i++){array_a[j] = array_a[j-1];j--;}(*a_length)++;array_a[pos] = element;
}int find_position(int *array_a, int end_index, int element)
{while(array_a[end_index]>element){end_index--;}return end_index;
}int main()
{int input_a_size = 3;int input_b_size = 3;int j = input_a_size -1;int i = input_b_size -1;int pos = 0;int tmp = 0;while(i>=0){if(data_array_b[i]>data_array_a[j]){insert_element(data_array_a,j+1, &input_a_size, data_array_b[i]);}else{pos = find_position(data_array_a, j,data_array_b[i]);if(data_array_a[pos] != data_array_b[i]){insert_element(data_array_a, pos,&input_a_size, data_array_b[i]);   }j = pos;}i--;}while(tmp<input_a_size){cout<<data_array_a[tmp]<<endl;tmp++;}return 0;
}

http://www.lryc.cn/news/329771.html

相关文章:

  • python练习二
  • 专升本-数字媒体
  • 蓝桥杯算法题-发现环
  • Oracle存数字精度问题number、binary_double、binary_float类型
  • Java封装最佳实践:打造高内聚、低耦合的优雅代码~
  • 开源,微信小程序-超级计算器T3000 简介
  • Dimitra:基于区块链、AI 等前沿技术重塑传统农业
  • 降低项目延期概率的5大注意事项
  • 在VUE页面调用Extjs中定义的方法
  • 【独立开发前线】Vol.32 能够坚持下去的人并没有你想象的那么多
  • Java 扫描某包下所有类的注解并获得注解值
  • 根据实例逐行分析NIO到底在做什么
  • TypeScript-对象的类型(接口)
  • Windows服务器安全策略配置几个步骤,轻松加强服务器安全
  • Hive详解(2)
  • 【浅尝C++】STL第二弹=>迭代器失效详解/vector常用接口使用示例/vector底层结构探索/vector模拟实现代码详解
  • 【pytest】pytest` 中几种常用的参数化方法
  • 设计模式-装饰者模式在Java中使用实例-打印发票装饰抬头和脚注
  • parallel linux虚拟机没有root权限
  • 科技下乡:数字乡村改变乡村生活方式
  • 【GitLab】Ubuntu使用宝塔安装GitLab最新社区版
  • C++入门(2)
  • Prometheus +Grafana +node_exporter可视化监控Linux + windows虚机
  • 腾讯云容器与Serverless的融合:探索《2023技术实践精选集》中的创新实践
  • python 字典练习
  • Postman进阶功能实战演练
  • Flink基于Hudi维表Join缺陷解析及解决方案
  • 3.31学习总结
  • Android Studio控制台输出中文乱码问题
  • itextPdf生成pdf简单示例