Namen sortieren
-
du musst nur immer 2 vergleichen, und gehst halt die ganze kette durch, immer und immer wieder bis alles sortiert ist.
-
Unbekannt schrieb:
du musst nur immer 2 vergleichen, und gehst halt die ganze kette durch, immer und immer wieder bis alles sortiert ist.
Die Funktion strncmp ist aber passend oder??
-
Du bist hier im falschen Sub-Forum. Du programmierst C, hier ist aber C++

-
Acid69 schrieb:
Für n darf ich eine Zahl annehmen!
Nimm n = 2 an!
Und arbeite der Einfachheit halber erst mal mit Zahlen, und wenn alles läuft, nimmst Du dafür Strings.
Ich weiß gar nicht, wie man einen Sortierfehler erkennen soll ...
Beispiel:10, 11, 2, 3, 4
Wieviel Sortierfehler sind hierdrin? Zwei, weil die 10 und die 11 umgepackt werden müssen? Drei, weil 2, 3 und 4 kleiner sind als 11?
Ich habe keine Vorstellung davon, wie so ein Algorithmus aussehen könnte, wenn ich 10 - 11 prüfe, stelle ich fest, okay 10 ist kleiner, alles klar, prüfe ich 11 - 2, stelle ich fest, 11 ist größer, Sortierfehler, der Rest passt wieder, aber ich habe nur einen Sortierfehler festgestellt, also so einfach kann es nicht sein ...
-
ja die ist schon richtig, nun brauchst du nur noch eine schleife um die "kette" von namen durch zu gehen und immer 2 namen zu vergleichen.
ungefair so: Bubblesort
-
Oder ist es am Ende doch so einfach:
Prüfe das erste gegen alle anderen, wenn nur eines kleiner ist als das erste, erhöhe Anzahl der Sortierfehler, nimm nun das zweite, prüfe gegen alle von 3 - n ... usw.?
-
Es gibt verschiedene Verfahren, um die Sortiertheit einer Sequenz zu bestimmen, die auch unterschiedliche Ergebnisse liefern. Das ist vergleichbar mit dem Mittelwert, wo es auch mehrere Möglichkeiten gibt (arithmetisches Mittel, geometrisches Mittel, harmonisches Mittel, Median usw.), die alle ihre Berechtigung haben.
Zufällig wurde diese Frage aber auch schonmal vor kurzem gestellt: http://www.c-plusplus.net/forum/281754
-
Belli schrieb:
Oder ist es am Ende doch so einfach:
Prüfe das erste gegen alle anderen, wenn nur eines kleiner ist als das erste, erhöhe Anzahl der Sortierfehler, nimm nun das zweite, prüfe gegen alle von 3 - n ... usw.?Das hört sich nicht so schlecht an

Im Prinzip ist die aufgabenstellung so:
Gegeben sei folgende Spezifikation:
Gesucht ist ein Algorithmus sortCheck, welcher eine Liste L entgegennimmt, wobei
in dieser Liste Personennamen (Zuname, Vorname) gespeichert sind.
Der Algorithmus soll den „Grad der Sortiertheit“ der übergebenen Liste feststellen
indem die Anzahl der Sortierfehler berechnet wird (0 bedeutet somit, dass die Liste korrekt sortiert ist).Nun ist die Spezifikation nicht vollständig.. Als erstes musste ich sie vervollständigen..
• Sortieren nach Zuname oder Vorname?
• Auf- oder Absteigend? (a bis z oder z bis a)
• Wie viele Namen sind in der Liste gespeichert?Nun entschloss ich nach Zuname zu sortieren und von a bis z!
Aber das mit den Sortierfehler habe ich noch gar nicht so genau bedacht..
-
Du sollst doch nicht sortieren? Das habe ich Deinem Eingangsposting jedenfalls nicht entnehmen können ... Danach hättest Du ja auf jeden Fall (hoffentlich
) 0 Sortierfehler.Aber um das auch noch mal festzuhalten: Vergleichen kann man natürlich immer nur zwei Elemente miteinander.
-
Belli schrieb:
Du sollst doch nicht sortieren? Das habe ich Deinem Eingangsposting jedenfalls nicht entnehmen können ... Danach hättest Du ja auf jeden Fall (hoffentlich
) 0 Sortierfehler.Aber um das auch noch mal festzuhalten: Vergleichen kann man natürlich immer nur zwei Elemente miteinander.
Nein im Prinzip ist es nur ein Vergleichen und dann einen Zähler mitlaufen zu lassen.. Nachdem sortieren, was hier aber nicht gefragt ist sollte ich 0 fehler haben ja

Okay nur immer 2 elemente vergleichen..
bei 10 11 2 3 4 würde ich auch sagen, dass es 3 fehler sind??
-
ok dann sollt ich jetzt mal den sortierfehler definieren...
Nehmen wir mal an die Liste sieht so aus:
Philipp
Thomas
Stefan
LukasSo nun nehm ich mal Philipp.. überprüfe.. finde 1 fehler
Thomas.. finde 2 fehler.. gesamt: 3
Stefan.. finde 2 fehler.. gesamt: 5
Lukas.. finde 3 fehler.. gesamt: 8
Oder doch anders????