Lập trình Java - Nối 2 mảng thành 1 mảng tăng
Nhập số liệu cho 2 dãy số thực a0 , a1 ,..., am-1 và b0 , b1 ,..., bn-1. Giả sử cả 2 dãy này đã được sắp theo thứ tự tăng dần. Hãy tận dụng tính sắp xếp của 2 dãy và tạo dãy c0 , c1 ,..., cm+n-1 là hợp của 2 dãy trên, sao cho dãy ci cũng có thứ tự tăng dần .
Mã nguồn chương trình:
import java.util.Arrays;
import java.util.Scanner;
public class Bai18 {
public static int nhap(){
Scanner input= new Scanner(System.in);
boolean check= false;
int n=0;
while(!check){
System.out.print(" ");
try{
n= input.nextInt();
check= true;
}catch(Exception e){
System.out.println("Ban phai nhap so! hay nhap lai...");
input.nextLine();
}
}
return (n);
}
public static void inArray(int[] a, int begin , int end){
System.out.println();
int i;
for(i=begin ; i<end ; i++){
System.out.print(" "+a[i]);
}
System.out.println();
}
public static void themPhanTu(int[] a,int n,int pt){
a[0]= pt;
Arrays.sort(a);
}
public static void main(String[] args) {
System.out.println("Nhap n");
int n= nhap();
System.out.println("Nhap m");
int m= nhap();
int i;
int[] a= new int[n+m];
int[] b= new int[m];
//Nhap vao mang A va sap xep theo thu tu tang dan
System.out.println("nhap mang A: ");
for(i=0 ; i<n ; i++){
System.out.print("\n Nhap phan tu thu "+i+" = ");
a[i]= nhap();
}
Arrays.sort(a);
//Nhap vao mang B va sap xep theo thu tu tang dan
System.out.println("nhap mang B: ");
for(i=0 ; i<m ; i++){
System.out.print("\n Nhap phan tu thu "+i+" = ");
b[i]= nhap();
}
Arrays.sort(b);
//Gop mang b vao mang a
for(i=0 ; i<m ; i++){
themPhanTu(a, n+m+1, b[i]);
}
inArray(a, 0, n+m);
}
}
Kết quả:
Nhap n
5
Nhap m
6
nhap mang A:
1
Nhap phan tu thu 0 =
2
Nhap phan tu thu 1 =
3
Nhap phan tu thu 2 =
4
Nhap phan tu thu 3 =
5
Nhap phan tu thu 4 = nhap mang B:
5
Nhap phan tu thu 0 =
6
Nhap phan tu thu 1 =
7
Nhap phan tu thu 2 =
8
Nhap phan tu thu 3 =
9
Nhap phan tu thu 4 =
10
Nhap phan tu thu 5 =
1 2 3 4 5 5 6 7 8 9 10