1. 程式人生 > 其它 >將兩個升序陣列 a[] 和 b[] 合併成一個升序陣列 c[]

將兩個升序陣列 a[] 和 b[] 合併成一個升序陣列 c[]

晚上突然接到朋友一個拷問,如何把將兩個升序陣列 a[] 和 b[] 合併成一個升序陣列 c[]

第一反應就是把兩個陣列按位拷貝到一個新的陣列中,再排序不就完事了嘛。但是那一天,我終於回想起曾經一度被面試官支配的恐懼,以及囚禁在公司做碼農的屈辱。我想起了寫下第一行程式碼的時候,天空是那麼藍,理想是那麼豐滿,啊,不好意思扯遠了。

其實這個題目的解法思路非常簡單,但是設計起來就很費力。

我的基本思路就是建立一個新的陣列,通過‘對撞指標’(其實我開始不知道,我只知道從兩端同時處理會更高效一點)對陣列進行遍歷式的存放,即兩個源陣列從頭部(index為0)和尾部(index為陣列長度-1)同時進行比較,比較的結果存放到目標陣列對應的下標位置中,同時移動對應源陣列的指標,直到左右指標交叉,計算完成。

我的程式碼實現如下,特此記錄,以免將來自己都忘記了當初自己是怎麼做的,畢竟靈感就像是放屁一樣,指不定什麼時候就蹦出來一個