使用delphi寫的例子,但願有人來看…
procedure
tform1.btn1click
(sender: tobject);
var arr1,arr2,arr3,arr4:array
of integer;
i,k,n,x:integer;
a,b:integer;
flag:boolean;
begin
randomize;
a:=3;
b:=5;
setlength(arr1,a);
setlength(arr2,b);
lst1.clear;
repeat
flag:=true;
for i:=0
to (a-1) do
arr1[i]:=random(5);
for i:=0
to (b-1) do
arr2[i]:=random(6);
//由於陣列1和陣列2的元素是隨機出來的可能存在重複
for i:=0
to (a-2) do
begin
for k:=(i+1) to (a-1) do
begin
if arr1[i]=arr1[k] then flag:=false;
end;
end;
for i:=0
to (b-2) do
begin
for k:=(i+1) to (b-1) do
begin
if arr2[i]=arr2[k] then flag:=false;
end;
end;
until flag;
//將兩個陣列內容比較,排除重複的
if a>b then
begin
//遍歷數量少的那個陣列
for i:=0
to (b-1) do
for k:=0
to (a-1) do
begin
//如果陣列1和陣列2有相同元素,那麼去掉陣列2中的相同元素
//陣列1獨有的元素+陣列1和2共有的元素+陣列2獨有的元素
if arr2[i]=arr1[k] then
begin
arr2[i]:=-100;
end;
end;
endelse
begin
for i:=0
to (a-1) do
for k:=0
to (b-1) do
begin
//如果陣列1和陣列2有相同元素,那麼去掉陣列2中的相同元素
//陣列1獨有的元素+陣列1和2共有的元素+陣列2獨有的元素
if arr1[i]=arr2[k] then
begin
arr1[i]:=-100;
end;
end;
end;
//找出少的那個陣列值為-1的數量
//陣列1的數量+陣列2的數量-重複數量
x:=0;
//這是a>b的情況
if a>b then
begin
for i:=0
to (b-1) do
begin
if arr2[i]=-100
then x:=x+1;
end;
n:=a+b-x;
setlength(arr3,n);
for i:=0
to (a-1) do
begin
arr3[i]:=arr1[i];
end;
if (b-x)<>0
then setlength(arr4,b-x);
k:=0;
for i:=0
to (b-1) do
begin
if arr2[i]<>-100
then
begin
arr4[k]:=arr2[i];
k:=k+1;
end;
end;
//x=0的時候說明沒有重複的
for i:=a to (b-x+a-1) do
begin
if (b-x)<>0
then arr3[i]:=arr4[i-a];
end;
end// a<=b的情況
else
begin
for i:=0
to (a-1) do
begin
if arr1[i]=-100
then x:=x+1;
end;
n:=a+b-x;
setlength(arr3,n);
for i:=0
to (b-1) do
begin
arr3[i]:=arr2[i];
end;
//x=0的時候說明沒有重複的
if (a-x)<>0
then setlength(arr4,a-x);
k:=0;
for i:=0
to (a-1) do
begin
if arr1[i]<>-100
then
begin
arr4[k]:=arr1[i];
k:=k+1;
end;
end;
//x=0的時候說明沒有重複的
for i:=b to (a-x+b-1) do
begin
if (a-x)<>0
then arr3[i]:=arr4[i-b];
end;
end;
k:=0;
for i:= 0
to (n-1) do
begin
k:=k+1;
lst1.items.add(inttostr(arr3[i]));
end;
edt1.text:=inttostr(k);
end;
合併兩個陣列
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...
兩個陣列合併
好久沒寫c c 程式了,手腦都遲鈍了老些,希望自己能夠通過沒日一小題來提高自己,鍛鍊自己。今日題目是,兩個已經排好序的陣列,合併他們並使他們也排好序 程式如下 希望高手們來指教。int mergearray int a,int len1,int b,int len2 while i len1 els...
兩個陣列 物件 合併
let array let temp 處理後為下面的 array.foreach item case1 如果array裡的label 9000在temp裡也有label 9000,就把這個label所在物件的items裡的物件給temp裡的label 9000所對應的items case2 如果te...