1. 程式人生 > >java將兩個順序表合併為一個順序表

java將兩個順序表合併為一個順序表

Main類

package combine;

public class Main {
	public static void main(String[] args) {
		 SeqList a = new SeqList(new int[] { 3,6,9 }); 
		  SeqList b = new SeqList(new int[] { 1,7,10 }); 
		  SeqList c = new SeqList(new int[a.array1.length + b.array1.length]);
		  Combine cob=new Combine();
		  cob.Combine(a, b, c);
		  for(int i=0;i<c.array1.length;i++) {
			  System.out.print(c.array1[i]+" ");
		  }
	}
}

Combine類

package combine;

public class Combine {
	public void Combine(SeqList A,SeqList B,SeqList C) {
		int a=0,b=0,c=0;
		while(a<A.last&&b<B.last) {
			if(A.array1[a]<B.array1[b]) {
				C.array1[c++]=A.array1[a++];
			}else {
				C.array1[c++]=B.array1[b++];
			}
		}
		while(a<A.last) {
			C.array1[c++]=A.array1[a++];
		}
		while(b<B.last) {
			C.array1[c++]=B.array1[b++];
		}
		C.last=c;
	}
}

SeqList類

package combine;

public class SeqList {
	public int[] array1;
	public int last;
	public SeqList(int[] array1) {
		this.array1=array1;
		if(array1!=null) {//判斷是否為空
			last=array1.length;
		}
	}
}