把兩個陣列合併

2021-09-08 08:16:37 字數 1012 閱讀 7758

①將兩個整型公升序資料集合a和b合併成乙個公升序資料集合

例a= b=

結果:c=

#include#define m 7

#define n 5

#主函式

int main(void)

; int b[n]=;

int c[m+n];

merge(a,b,c);

for(int i = 0;i < m+n;++i)

return 0;

}

方法一:

void merge(int a,int b,int c)else

if(i此方法是同時遍歷陣列a和陣列b,取到陣列a和b中的元素,分別進行比較,把較小的那乙個存放在陣列c中,然後繼續取元素,繼續比較,依次迴圈,總有乙個陣列先存放完,以此為迴圈條件。出迴圈後判斷是哪個陣列先完成了存放,然後把未完成存放的繼續進行遍歷,存入陣列c。

方法二:

void merge(int a,int b,int c)else

if(ib[j])else

if(i此方法利用指標s指向沒有存放完的陣列的元素,這樣就可以把方法一中的while語句提出來,提高效率。

方法三:

void merge(int a,int b,int c)else

if(j思路:此方法是在方法二的基礎上,開始時就假設陣列a沒有存放完,然後在後面對陣列b沒有存放完的情況進行判斷,如果陣列b沒存放完則對指標s以及長度len進行改變。簡化了**。

方法四:

void merge(int a,int b,int c){

int i = 0,j = 0,k = 0;

while(in || i思路:此方法**量少,但是難懂。當陣列a和陣列b任何乙個沒有存放完時都繼續操作,進行存放。此條件作為進迴圈的條件。迴圈裡面進行到底是存放a還是存放b的操作。

存放a的條件:

b存放完了||b沒存放完&&a沒存放完 && a[i]b[j] 時存放b

兩個陣列合併

好久沒寫c c 程式了,手腦都遲鈍了老些,希望自己能夠通過沒日一小題來提高自己,鍛鍊自己。今日題目是,兩個已經排好序的陣列,合併他們並使他們也排好序 程式如下 希望高手們來指教。int mergearray int a,int len1,int b,int len2 while i len1 els...

合併兩個陣列

include using namespace std int sortedinsert int a,int lena,int b,int lenb else printf d n a indexnew printf here lena d,lenb d n indexa,indexb indexn...

兩個陣列 物件 合併

let array let temp 處理後為下面的 array.foreach item case1 如果array裡的label 9000在temp裡也有label 9000,就把這個label所在物件的items裡的物件給temp裡的label 9000所對應的items case2 如果te...