Ich habe folgende Stück Code:Verbesserung O (n^2) -Algorithmus
var keywordItems = adwordsService
.ParseReport(report)
.Where(e => e.Keyword.IndexOf('+') == -1);
var keywordTranslations = keywordTranslationService
.GetKeywordTranslationsByClient(id);
model.KeywordItems = keywordItems
.Where(e =>
{
int lastUnderscore = e.CampaignName.LastIndexOf('_');
var identifer = e.CampaignName.Substring(lastUnderscore + 1);
var translation = keywordTranslations
.FirstOrDefault(t => t.translation == e.Keyword &&
t.LocalCombination_id == identifer);
return translation == null;
})
.OrderBy(e => e.Keyword);
Er empfängt ein Array und filtert dann jedes dieser Elemente basierend darauf, ob oder nicht, haben sie bereits zuvor gesehen worden ist.
Allerdings läuft das ziemlich langsam, da es viele neue Elemente gibt, also würde ich es mögen, wenn mir jemand in die richtige Richtung bezüglich des besten Algorithmus in diesem Fall zeigen könnte.
Sie haben zwei verschiedene Eingänge - 'keywordItems' und' keywordTranslations' - so ist das, was 'n' hier? –
Sie sind zwei Listen von etwa gleicher Größe. –