C語言數組合并去重的方法有以下幾種:
使用雙重循環遍歷兩個數組,將不重復的元素存儲到一個新的數組中。這種方法的時間復雜度較高,為O(n^2)。
先將兩個數組分別排序,然后使用雙指針法進行合并和去重。首先將兩個數組的第一個元素比較,較小的元素存儲到新的數組中,并將對應指針向后移動一位;如果兩個元素相等,則只存儲一個元素,并將兩個指針都向后移動一位。重復這個過程直到遍歷完兩個數組,得到合并后的數組。這種方法的時間復雜度為O(nlogn),其中n為兩個數組的總長度。
使用哈希表(散列表)來實現去重。先遍歷第一個數組,將每個元素存儲到哈希表中;然后遍歷第二個數組,對于每個元素,判斷其是否已經在哈希表中存在,如果不存在則存儲到哈希表中。最后遍歷哈希表,將所有不重復的元素存儲到一個新的數組中。這種方法的時間復雜度為O(n),其中n為兩個數組的總長度。但是需要額外的空間來存儲哈希表。
總結來說,使用哈希表的方法效率較高,但需要額外的空間;雙指針法雖然效率較低,但是不需要額外的空間。選擇哪種方法取決于具體的需求。