關於陣列問題 |
|
virex01
一般會員 發表:1 回覆:2 積分:0 註冊:2006-12-29 發送簡訊給我 |
|
Coffee
版主 發表:31 回覆:878 積分:561 註冊:2006-11-15 發送簡訊給我 |
合併排序
你可以先Sort source,然後以其中一個當index,輪詢每個element, 去問第二個array最後已插入的位置的下一個element是否比它大,不是的話就插到第三個array的最後 是的話,就以第二個array為key,一直插入到比第一個array最後已插入的下一個elemnt 如此反覆到其中一個array結束之後,將另一個array剩下的element一次性的插入到第三個element 以你的例子來說,兩個陣列都已經自己排序完畢,那麼,以1的陣列為index, 取第一個元素1,跟2的第一個比較,發現2也是1,於是插入1這個元素到新陣列 然後把兩個陣列的第一個元素當成插入,再來取index的第二個元素2,也是一樣的狀況, 所以兩個陣列都已經插入到第二個元素,再來取index的第三個,是4,因為比第二個陣列的3大,所以插入第二個陣列的3, 然後以第二個陣列為index,取第四個元素8,比第一個陣列未插入的第一個元素4大(剛剛只有比較,沒有插入), 所以插入四,把index array換成第一個陣列,以此類推 如果你用linked list的話,就可以把其中一個當成destination,兩個sort完之後,直接將source插入就可以
------
不論是否我發的文,在能力範圍皆很樂意為大家回答問題。 為了補我的能力不足之處,以及讓答案可以被重複的使用,希望大家能儘量以公開的方式問問題。 在引述到我的文時自然會儘量替各位想辦法,謝謝大家! |
virex01
一般會員 發表:1 回覆:2 積分:0 註冊:2006-12-29 發送簡訊給我 |
感謝這位大大的解說
不過小弟是BCB的初學者 所以還是看不太懂 我提出我的題目好了 我輸入兩個數字 假設是A跟B好了 那我要這兩個數字的個別公因數 還有這兩個數字的所有公因數 那 第一個 A跟B 的個別公因數 求出來之後 分別把這兩個數字的公因數丟到陣列1跟2 並且用StringGrid秀出來 這小弟會寫了 現在小弟不懂的就是 如何去比較 把A跟B的所有公因數放到陣列3 小弟是有用過for迴圈去比較過 可以比較是沒錯 不過放到陣列3的時候 會發生一些事情 假如 陣列1是{1,2.4,8,11,16,0,0} 陣列2是{1,4,8,16,20,0,0} 那用for迴圈去比較陣列3就會變成{1,0,4,8,0,16,0,0} 那我不要陣列3中間有穿插0的數值 意思就是我希望陣列3是{1,4,8,16,0,0,0,0} 那請問該如何解決 謝謝 |
Coffee
版主 發表:31 回覆:878 積分:561 註冊:2006-11-15 發送簡訊給我 |
A1 : {1,2,4,8,11,16}
A2 : (1,2.3,8,12,16}
假設以A1為key array,那麼從A1的第一個元素開始,拿A1跟A2的第一個元素比,發現兩者相同,
那麼將A1[0]插入A3,A1.InsertedInd=0,A2因為是重覆的不需要插入所以也跟著設A2.InsertedInd=0
A1[1]跟A2[1]又一樣,插入A1[1]到A3,A1.InsertedInd=1, A2.InsertedInd=1
A1[2]=4 > A2[2]=3,key array變成A2,插入A2[2]到A3,A2.InsertedInd=2
A2[3]=8 > A1[2]=4, (因為A1還未插入),key array = A1,插入A1[2],A1.InsertedInd=2
也就是輪到key array的array要從它自己尚未插入到A3的element開始walk through,並跟另一個array的InsertedInd 1比較
如果小就插入,大就是key array換人當,直到其中一個array結束,那麼另一個array的元素就可以直接接到A3最後面
不過,你的0應該是不需要的吧?
------
不論是否我發的文,在能力範圍皆很樂意為大家回答問題。 為了補我的能力不足之處,以及讓答案可以被重複的使用,希望大家能儘量以公開的方式問問題。 在引述到我的文時自然會儘量替各位想辦法,謝謝大家! |
taihao
一般會員 發表:1 回覆:13 積分:2 註冊:2005-11-02 發送簡訊給我 |
|
Coffee
版主 發表:31 回覆:878 積分:561 註冊:2006-11-15 發送簡訊給我 |
|
暗黑破壞神
版主 發表:9 回覆:2301 積分:1627 註冊:2004-10-04 發送簡訊給我 |
|
virex01
一般會員 發表:1 回覆:2 積分:0 註冊:2006-12-29 發送簡訊給我 |
===================引 用 文 章=================== 問題在他說的這句 > 意思就是我希望陣列3是{1,4,8,16,0,0,0,0} 0 要出現4次。 這不合你說的情況。 不知道是他誤打還是。。。。。。。。。 ===================引 用 文 章=================== Insert into ResuleTAB(T1.FD1) from Table1 T1,Table2 T2 where T1.FD1=T2.FD2 不是物打喔 大大 我是假設陣列1跟陣列2還有陣列3為[8]; 例如 x[8] y[8] z[8] 所以 沒有被帶入整數的部分就會顯示0 |
Coffee
版主 發表:31 回覆:878 積分:561 註冊:2006-11-15 發送簡訊給我 |
|
暗黑破壞神
版主 發表:9 回覆:2301 積分:1627 註冊:2004-10-04 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |