【C++】1161 - 元素插入有序数组

问题

给你一个整数 n 和一个数列(数列个数不超过 1000 ),这个数列保证从小到大排列,现要求将这个整数 n 插入到数列中,使新的数列仍然从小到大排列。
在这里插入图片描述

1.分析问题

  1. 已知:一个整数 n 和一个数列
  2. 未知:新的数列
  3. 关系:整数 n插入到数列,仍然从小到大排列

2.定义变量

sub:下标

	//二、数据定义 
	int n,m,a[10000],sub;
	

3.输入数据

	//三、数据输入
	cin>>n;
	cin>>m;
	for(int i=0;i<m;i++){
    
    
		cin>>a[i];
		if(a[i]<n){
    
    
			sub=i+1;
		}
	} 

4.数据计算

//四、数据计算 
	for(int i=m;i>=sub;i--){
    
    
		a[i]=a[i-1];
	}
	a[sub]=n;

5.输出结果

#include<iostream>
using namespace std;
int main(){
    
    
	//一、分析问题
	//已知:一个整数 n 和一个数列
	//未知:新的数列
	//关系:整数 n插入到数列,仍然从小到大排列 
	
	//二、数据定义 
	int n,m,a[10000],sub;
	
	//三、数据输入
	cin>>n;
	cin>>m;
	for(int i=0;i<m;i++){
    
    
		cin>>a[i];
		if(a[i]<n){
    
    
			sub=i+1;
		}
	} 
	//四、数据计算 
	for(int i=m;i>=sub;i--){
    
    
		a[i]=a[i-1];
	}
	a[sub]=n;

	//五、输出结果
	for(int i=0;i<m+1;i++){
    
    
		cout<<a[i]<<" ";
	} 
	return 0;	
}

猜你喜欢

转载自blog.csdn.net/qq_39180358/article/details/134992818