[Update] Contest in der dotnetpro 7/2011
16.06.2011, 00:00 Uhr
Fragen und Antworten
Die Aufgabenstellung zum dotnetpro.contest hat Fragen aufgeworfen. Hier sind die Antworten.
Der Host gibt immer nur "Kein Bild für dich" aus. Was mache ich falsch?
Der Host wurde nachgereicht. Außerdem enthalten sind Testdaten, mit denen man den eigenen Algorithmus überprüfen kann.
[Update] 21.06.2011: Umlautprobleme
Die Sortierung von Strings mit Umlauten führte zu sehr seltsamen Ergebnissen. Je nach Verwendung von LINQ oder expliziten Vergleichen mit string.Compare oder CompareTo führt zu unterschiedlichen Ergebnissen.
Aus dem Grund sind die Daten DataBigNoUmlautsNoHyphen nun von Umlauten und Bindestrichen bereinigt.
Host und Testdaten (Ohne Umlaute) für den dotnetpro.contest 7/2011
Welches Interface soll ich verwenden?
Das Interface heißt IDnp1107Solution. Darin gibt es die Methodensignatur LadeVerzeichnis. Die Funktionalität für den Contest soll dort hinein.
Welche Sortierung soll ich anwenden?
Alphabethische Sortierung. Also genauer: String.CompareTo() bzw. die eingebaute Sortierung in den Collections.
Wann läuft die Zeit?
Die Zeit läuft ab dem Aufruf von LadeVerzeichnis (Laden der Datei, Splitten in die einzelnen Bestandteile, einsortieren in den Baum) bis das komplette Ergebnis zurückgeliefert wird.
Ist Deferred Execution erlaubt?
Das wäre natürlich lustig für die Zeitmessung. Denn dann würden alle Einsendungen 0 Sekunden benötigen. Nein. Es muss ein fertig sortiertes Ergebnis zurückgegeben werden. Deferred Execution ist verboten. Im Prinzip ist das aber auch egal, denn es werden alle Einträge explizit abgefragt. Insofern muss die Sortierung arbeiten.
[Update] Insofern ist der letzte Satz in der Aufgabenstellung leider verkehrt: Nicht das Zurückliefern von IEnumerable stoppt die Zeit, sondern die Zeit stoppt nachdem jeder einzelne Wert abgefragt und mit der Referenzdatei verglichen wurde.
Wie ist das Testsystem ausgestattet?
Prozessor Intel Core2 Duo CPU E7500 @ 2.93GHz, 2936 MHz, 2 Kern(e), 2 logische(r) Prozessor(en)
Installierter physikalischer Speicher (RAM) 4,00 GB
Gesamter realer Speicher 3,00 GB
Microsoft Windows 7 Ultimate
Ist unsafe code erlaubt?
Nein. Es soll nur managed sortiert werden.
Es gibt eine Datei mit 1000 und eine mit 100 000 Datensätzen. Welche ist die richtige?
Geplant ist, die mit den 100 000 Datensätzen (DataBigNoUmlautsNoHyphen) zum Testen zu verwenden. Mit einer Einschränkung: Sollten die Ergebnisse aber zu eng beieinander liegen, wird eine größere verwendet. Dauert die Prüfung zu lang, wird eine kleinere verwendet.