java 数据结构顺序表问题

来源:百度知道 编辑:UC知道 时间:2024/07/04 11:54:03
有顺序表A和B,其元素均按从小到大的升序排列,编写一个算法将它们合并成一个顺序表C,要求C的元素也是从小到大的升序排列。
算法思路:依次扫描通过A和B的元素,比较当前的元素的值,将较小值的元素赋给C,如此直到一个线性表扫描完毕,然后将未完的那个顺序表中余下部分赋给C即可。C的容量要能够容纳A、B两个线性表相加的长度。
希望高手们多多指点啊~

for(int i=0:i<A.lengh;i++){
for(int j=0;j<B.lengh;j++){
if(a[i]<b[j])
break;
for(int k=B.lengh;k>j;k--)
b[k]=b[k-1];
b[j]=a[i];
B.lengh++
}
}//核心代码就这样

最笨的方法就是新数组的前半段是A后半段是B再用个排序排 排序算法很多 快排 堆排 冒泡 插入 归并 希尔 等等..

比较好的方法就是拿A的元素一个个和B比较 因为A,B已经排好了 所以比过的就不用再比了

List C=new ArrayList();
for(int i =0;i<A.size();i++)
C.add(A.get(i));
for(int j =0;i<B.size();j++)
C.add(B.get(i));
Collections.sort(C);