1. 程式人生 > >資料結構 C語言 嚴蔚敏版 演算法2.1

資料結構 C語言 嚴蔚敏版 演算法2.1

//已知線性表La和Lb的資料元素按值非遞減有序排列,現要求將La和Lb歸併為一個新的線性表Lc,且Lc中的資料元素仍按值非遞減有序排列。

#include <stdio.h>

#include <stdlib.h>
#include <math.h>


int main()
{
    int i=0,j=0,k=0,La_len,Lb_len,Lc_len;
    char La[]={3,5,8,11};
    char Lb[]={2,6,8,9,11,15,20};
    La_len=sizeof(La);//sizeof 多用於字元型陣列
    Lb_len=sizeof(Lb);
    char Lc[La_len+Lb_len-1];
    while((i<La_len)&&(j<Lb_len)){
if(La[i]<=Lb[j])//因為變數i,j 才能實現此演算法
{Lc[k]=La[i];
 i++;
}
else
{Lc[k]=Lb[j];
 j++;
}
k++;
    }
    while (i<La_len){
Lc[k]=La[i];
k++;
i++;
    }
    while (j<Lb_len){
Lc[k]=Lb[j];
k++;
j++;
    }
    Lc_len=sizeof(Lc);
    for(k=0;k<=Lc_len;k++)
printf("%d,",Lc[k]);
    return 0;
}