package com.wrx.basicKnowledge.oj.sep23;
import java.util.Scanner;
/**
* @auther wrx
* @time 2022-10-01-7:10
*/
//有序顺序表的合并
public class Test2 {
public static void main(String[] args) {
B len=new B();
len.merge();
}
}
class A{
int elem[];
int length;
A(){
elem=new int[100];
length=0;
}
void display()//遍历
{
for(int i=0;i<length;i++){
System.out.print(elem[i]+" ");
}
System.out.print(" ");
}
}
class B{
A a,b,c;//定义3个顺序表
B(){
}
Scanner scanner = new Scanner(System.in);
void merge(){
int i=0;
int j=0;
A a=new A();
System.out.println("请输入a顺序表的长度:");
int value1=scanner.nextInt();
a.length=value1;
System.out.println("请输入顺序表a的"+value1+"个元素:");
for(int x=0;x<a.length;x++){
//Scanner scanner = new Scanner(System.in);
a.elem[x]= scanner.nextInt();
}
a.display();
A b=new A();
System.out.println("请输入b顺序表的长度:");
int value2=scanner.nextInt();
b.length=value2;
System.out.println("请输入顺序表b的"+value2+"个元素:");
for(int y=0;y<b.length;y++){
b.elem[y]= scanner.nextInt();
}
b.display();
A c=new A();
c.length=a.length+b.length;
int k=0;
while (i<a.length&&b.length>j){
if(a.elem[i]>=b.elem[j]){
c.elem[k++]=b.elem[j++];
}else{
c.elem[k++]=a.elem[i++];
}
}
while(i<a.length){//a顺序表更长。将a顺序表中的元素加到c中
c.elem[k]=a.elem[i];
i++;
k++;
}
while(j<b.length){//b顺序表更长。将b顺序表中的元素加到c中
c.elem[k]=b.elem[j];
j++;
k++;
}
c.display();
System.out.print(" ");
}
}
Java数据结构与算法之有序顺序表的合并的小练习
最新推荐文章于 2022-12-28 23:07:17 发布