我有一個長度爲175,000的char
指針陣列。每個指針指向一個長度爲100的c字符串數組,每個字符爲1
或0
。我需要比較字符串之間的差異。長陣列性能問題
char* arr[175000];
到目前爲止,我有兩個for循環,我將每個字符串與每個其他字符串進行比較。比較函數基本上採用兩個c字符串,並返回一個整數,這是數組的差異數。
這對我的4核機器來說真的很長。我上次離開它運行45分鐘,它從未完成執行。請告知更快的解決方案或一些優化。
實施例:
000010
000001
具有自最後兩個位的2的差不匹配。
後,我計算差值我值存儲在另一個數組
int holder;
for(int x = 0;x < UsedTableSpace; x++){
int min = 10000000;
for(int y = 0; y < UsedTableSpace; y++){
if(x != y){
//compr calculates difference between two c-string arrays
int tempDiff =compr(similarity[x]->matrix, similarity[y]->matrix);
if(tempDiff < min){
min = tempDiff;
holder = y;
}
}
}
similarity[holder]->inbound++;
}
發表一些代碼。 –
「我有一個長度爲175,000的char指針數組,每個指針指向一個長度爲100的c-string數組,每個字符都是1或0。這種設計是否需要修改?看起來*非常*效率低下。 – GManNickG
答案完全取決於「比較字符串之間的差異」的確切含義。平等?大?還有別的嗎? – vz0