演算法 C 陣列去除重複元素演算法研究

2022-02-23 12:55:36 字數 1211 閱讀 1147

可以在網上找到的**:

string

stringarray =;

//list用於儲存從陣列裡取出來的不相同的元素

list

<

string

>

liststring

=new

list

<

string

>

();foreach

(string

eachstring

instringarray)

//最後從list裡取出各個字串進行操作

foreach

(string

eachstring

inliststring)

原理應該比較容易理解吧,通過遍歷原陣列中的每乙個元素,將元素新增到新的泛型liststring中,如果

liststring已經包含了就不新增,當遍歷完原陣列,泛型中儲存的就是去重後的結果了。

在資料量小的時候用這個演算法還ok,但如果資料量比較大時(我工作中需要將5萬以上左右的資料去重)其效率就不是那麼讓人接受了,一次處理需要耗費近1分鐘左右的時間(測試電腦用的inter pentium d 2.8ghz、1g記憶體)

由於需求對結果的元素序列沒有任何要求,我採取了下列演算法來提高效率

string

stringarray

=list

<

string

>

liststring

=new

list

<

string

>

();array.sort(stringarray );

//排序陣列

intmaxline

=stringarray.length;

#region

單獨計算第乙個

if(sourcedata[0]

!=stringarray[1])

#endregion

for(

inti =1

; i

<

maxline; i++)

}思路是:首先對陣列進行排序,這樣相同的陣列就排列在了一起。然後遍歷原陣列,一次取出當前元素和上乙個元素,如果2個元素相等就跳過,不相等就將其元素的儲存到泛型liststring中。(第一次執行的時候,前乙個元素為空,所以把第乙個元素單獨拿出來處理)

去除陣列中重複元素

統計乙個一維陣列中的各個元素的個數,然後刪除多出來的重複元素,並輸出結果。例如 1,2,2,2,3,3,3,3,3 1,2,3 將重複元素的列表中的重複元素進行統計,並將統計結果放在dictionary中,key為元素,value為該元素的個數 然後通過for獲取key,得到乙個新的列表,就是沒有重...

ArrayList容器 去除重複元素

需求 1.將自定義物件作為元素存到arraylist集合中,並去除重複元素 比如存人的物件,同姓名同年齡,視為同乙個人,為重複元素 思路 1.對人建立乙個類,將資料封裝進建立的人物件裡 2.定義容器,存入容器裡 3.遍歷,查重,取出 list 集合判斷元素是否相同contains,用equals 而...

python 去除列表重複元素

1.1邏輯去除 推薦面試使用 def dedup list li 定義乙個列表去重的函式 定義乙個空列表用於接收不重複的列表元素 dedup li list 定義乙個相關變數,用於下標的判斷 index 0 相同的任意個元素,用列表的index方法只能取到第乙個重複元素的下標 遍歷列表,同時每取到乙...