首页 > 试题广场 >

有序序列插入一个数

[编程题]有序序列插入一个数
  • 热度指数:11124 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解


有一个有序数字序列,从小到大排序,将一个新输入的数插入到序列中,保证插入新数后,序列仍然是升序。




输入描述:
共三行,
第一行输入一个整数(0≤N≤50)。
第二行输入N个升序排列的整数,输入用空格分隔的N个整数。
第三行输入想要进行插入的一个整数。


输出描述:
输出为一行,N+1个有序排列的整数。
示例1

输入

7 
5 30 40 50 60 70 90
20

输出

5 20 30 40 50 60 70 90
//直接sort没意思,自己写一个类似于插入排序的算法
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int N = in.nextInt();
        int[] arr = new int[N+1];
        for (int i = 0; i < N; i++) {
            arr[i] = in.nextInt();
        }
        int insert = in.nextInt();
        int i;
        for (i = N; i > 0; i--) {
            if (arr[i-1] > insert)
                arr[i] = arr[i-1];
            else
                break;
        }
        arr[i] = insert;
        for (int j = 0; j <= N; j++) {
            System.out.print(arr[j] + " ");
        }


    }

}


发表于 2021-10-23 14:44:11 回复(0)
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()) {
            int n = scanner.nextInt();
            ArrayList<Integer> arrayList = new ArrayList<>();
            for (int i = 0; i < n + 1; i++) {
                arrayList.add(scanner.nextInt());
            }
            Collections.sort(arrayList);
            for (int i : arrayList) {
                System.out.print(i + " ");
            }
        }
        scanner.close();
    }
}

发表于 2021-10-16 00:26:00 回复(0)
import java.util.*;
public class Main{
    public static void main(String args[]){
        Scanner scan=new Scanner(System.in);
        int res[]=new int[scan.nextInt()+1];
        for(int i=0;i<res.length-1;i++){
            res[i]=scan.nextInt();
        }
        res[res.length-1]=scan.nextInt();
        Arrays.sort(res);
        for(int i=0;i<res.length;i++){
            System.out.print(res[i]+" ");
        }
    }
}
这道题不难,先不管三七二十一全部扔进去,然后排一下序就好了
发表于 2021-01-07 17:59:06 回复(0)
import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        List a = new ArrayList();
        for(int i=0;i<n;i++){
            a.add(in.nextInt());
        }
        a.add(in.nextInt());
        Collections.sort(a);
        for(Object i :a){
            System.out.print(i+" ");
        }

    }
}

发表于 2020-07-03 18:57:32 回复(0)
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Iterator;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner scanner=new Scanner(System.in);
      int len=scanner.nextInt();
      int[] arr=new int[len+1];
      for(int i=0;i<len;i++) {
          arr[i]=scanner.nextInt();
      }
       int item=scanner.nextInt();
       arr[len]=item;
      Arrays.sort(arr);
      for (int i : arr) {
        System.out.print(i+" ");
    }
    }
    
}
            
    


发表于 2020-06-15 10:11:57 回复(0)
import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
        ArrayList<Integer> list = new ArrayList<Integer>();
        String str = "";
        for (int i = 0; i < num; i++) {
            list.add(sc.nextInt());
        }
        int num2 = sc.nextInt();
        list.add(num2);
        Collections.sort(list);
        for (int m = 0; m < list.size(); m++) {
            if (m <list.size()-1){
                str += list.get(m) + " ";
            }else {
                str += list.get(m).toString();
            }
        }
        System.out.println(str);
    }
}

发表于 2020-04-14 00:25:42 回复(0)