1035. 插入与归并(25) PAT乙级1089. Insert or Merge (25)PAT甲级

2024-03-06 20:58

本文主要是介绍1035. 插入与归并(25) PAT乙级1089. Insert or Merge (25)PAT甲级,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

甲级传送门

乙级传送门

#include<stdio.h>
#include<algorithm>
#define MAX_N 110using namespace std;int n;int aim[MAX_N];
int ins[MAX_N];
int merg[MAX_N];bool isSame(int a[],int b[]){bool flag=true;for(int i=0;i<n;i++){if(a[i]!=b[i]){flag=false;return false;}}return true;
}void show(int a[]){for(int i=0;i<n;i++){printf("%d",a[i]);if(i!=n-1)  printf(" ");}printf("\n");
}bool insert(){bool flag=false;for(int i=1;i<n;i++){if(i!=1&&isSame(ins,aim)){flag=true;}int key=ins[i];int j=i;while(j>0&&ins[j-1]>key){ins[j]=ins[j-1];j=j-1;}ins[j]=key;if(flag){return true;}}return false;
} void mergesort(){bool flag=false;for(int i=2;i/2<=n;i*=2){if(i!=2&&isSame(aim,merg)){flag=true;}for(int j=0;j<n;j+=i){sort(merg+j,merg+min(j+i,n));}if(flag){show(merg);return ;}}
}int main(){scanf("%d",&n);for(int i=0;i<n;i++){scanf("%d",&ins[i]);merg[i]=ins[i];}for(int i=0;i<n;i++){scanf("%d",&aim[i]); }if(insert()){printf("Insertion Sort\n");show(ins);}else{printf("Merge Sort\n");mergesort();}}

这篇关于1035. 插入与归并(25) PAT乙级1089. Insert or Merge (25)PAT甲级的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/781326

相关文章

SpringBoot分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

C++归并排序代码实现示例代码

《C++归并排序代码实现示例代码》归并排序将待排序数组分成两个子数组,分别对这两个子数组进行排序,然后将排序好的子数组合并,得到排序后的数组,:本文主要介绍C++归并排序代码实现的相关资料,需要的... 目录1 算法核心思想2 代码实现3 算法时间复杂度1 算法核心思想归并排序是一种高效的排序方式,需要用

pandas数据的合并concat()和merge()方式

《pandas数据的合并concat()和merge()方式》Pandas中concat沿轴合并数据框(行或列),merge基于键连接(内/外/左/右),concat用于纵向或横向拼接,merge用于... 目录concat() 轴向连接合并(1) join='outer',axis=0(2)join='o

mybatis执行insert返回id实现详解

《mybatis执行insert返回id实现详解》MyBatis插入操作默认返回受影响行数,需通过useGeneratedKeys+keyProperty或selectKey获取主键ID,确保主键为自... 目录 两种方式获取自增 ID:1. ​​useGeneratedKeys+keyProperty(推

Oracle 数据库数据操作如何精通 INSERT, UPDATE, DELETE

《Oracle数据库数据操作如何精通INSERT,UPDATE,DELETE》在Oracle数据库中,对表内数据进行增加、修改和删除操作是通过数据操作语言来完成的,下面给大家介绍Oracle数... 目录思维导图一、插入数据 (INSERT)1.1 插入单行数据,指定所有列的值语法:1.2 插入单行数据,指

mysql中insert into的基本用法和一些示例

《mysql中insertinto的基本用法和一些示例》INSERTINTO用于向MySQL表插入新行,支持单行/多行及部分列插入,下面给大家介绍mysql中insertinto的基本用法和一些示例... 目录基本语法插入单行数据插入多行数据插入部分列的数据插入默认值注意事项在mysql中,INSERT I

Python中bisect_left 函数实现高效插入与有序列表管理

《Python中bisect_left函数实现高效插入与有序列表管理》Python的bisect_left函数通过二分查找高效定位有序列表插入位置,与bisect_right的区别在于处理重复元素时... 目录一、bisect_left 基本介绍1.1 函数定义1.2 核心功能二、bisect_left 与

解决mysql插入数据锁等待超时报错:Lock wait timeout exceeded;try restarting transaction

《解决mysql插入数据锁等待超时报错:Lockwaittimeoutexceeded;tryrestartingtransaction》:本文主要介绍解决mysql插入数据锁等待超时报... 目录报错信息解决办法1、数据库中执行如下sql2、再到 INNODB_TRX 事务表中查看总结报错信息Lock

SpringBoot整合mybatisPlus实现批量插入并获取ID详解

《SpringBoot整合mybatisPlus实现批量插入并获取ID详解》这篇文章主要为大家详细介绍了SpringBoot如何整合mybatisPlus实现批量插入并获取ID,文中的示例代码讲解详细... 目录【1】saveBATch(一万条数据总耗时:2478ms)【2】集合方式foreach(一万条数

MySQL INSERT语句实现当记录不存在时插入的几种方法

《MySQLINSERT语句实现当记录不存在时插入的几种方法》MySQL的INSERT语句是用于向数据库表中插入新记录的关键命令,下面:本文主要介绍MySQLINSERT语句实现当记录不存在时... 目录使用 INSERT IGNORE使用 ON DUPLICATE KEY UPDATE使用 REPLACE