tag:blogger.com,1999:blog-6936017315111598402.post5076115401716271574..comments2023-05-30T05:38:50.612-07:00Comments on Florian Reischl: Listen vergleichenFlorian Reischlhttp://www.blogger.com/profile/09186266704215711060noreply@blogger.comBlogger4125tag:blogger.com,1999:blog-6936017315111598402.post-74935092912925551632013-05-23T11:30:23.322-07:002013-05-23T11:30:23.322-07:00Hallo Alexander
List.Contains entspricht einer &q...Hallo Alexander<br /><br />List.Contains entspricht einer "versteckten" Version von "Innere Schleife mit 'break' verlassen" führen. Eine Liste ist nicht sortiert und nicht indiziert. Jeder Aufruf von "Contains" endet innerhalb der Liste zu einer Schleife über alle Elemente, bis ein passendes gefunden wurde. Du bleibst also bei einem Aufwand von O(n). Da Contains intern direkten Zugriff auf den Array-Buffer der List hat wird die Range-Check-Elimination zu einer besseren Performance führen als das Beispiel hier, aber es bleibt bei einem Partial- bis Full-Scann.<br /><br />Das Dictionary sorgt dafür, dass source1 nur einmal durchlaufen werden muss um das Dictionary aufzubauen. Danach verwenden alle aufrufe von dict.Contains den im Dictionary enthaltenen Hash-Index, was in Aufwand annähernd O(1) entspricht.<br /><br />Hoffe das hilf.<br />FloFlorian Reischlhttps://www.blogger.com/profile/09186266704215711060noreply@blogger.comtag:blogger.com,1999:blog-6936017315111598402.post-21209797207782838602013-05-23T01:06:53.086-07:002013-05-23T01:06:53.086-07:00Hallo Florian,
ersteinmal danke für den Blogeintr...Hallo Florian,<br /><br />ersteinmal danke für den Blogeintrag. Mir stellt sich nur eine Frage, ich beziehe mich auf deinen .Net2 Teil.<br />Warum machst du aus Liste Source1 ein dictionary mit Key und Value Listeneintrag?<br />Ginge nicht auch in der Bedingung der foreach schleife:<br />27 foreach (string s2 in source2)<br />28 {<br />29 if (source1.Contains(s2))<br />30 results.Add(s2);<br />31 }<br /><br />Also wo liegt der Nachteil darin? so würde man sich doch das Dictionary sparen, oder?<br /><br />PS: Bin leider erst jetzt auf so ein Problem gestoßen, deshalb die späte Frage.<br />Alexandernoreply@blogger.comtag:blogger.com,1999:blog-6936017315111598402.post-46095243839077836592012-02-02T08:38:24.934-08:002012-02-02T08:38:24.934-08:00Hi Daniel
Danke dir für dein Feedback!
(Und sorry...Hi Daniel<br /><br />Danke dir für dein Feedback!<br />(Und sorry für die späte Antwort...)<br /><br />Grüße<br />FloFlorian Reischlhttps://www.blogger.com/profile/09186266704215711060noreply@blogger.comtag:blogger.com,1999:blog-6936017315111598402.post-20839573654251123952011-12-05T08:14:27.143-08:002011-12-05T08:14:27.143-08:00Hallo Florian
Danke für dein Blogeintrag, hat mir...Hallo Florian<br /><br />Danke für dein Blogeintrag, hat mir sehr geholfen bei meinem Problem.Danielhttps://www.blogger.com/profile/01792244636422208412noreply@blogger.com