Sortieren einer Liste von Elementen in alphabetischer Reihenfolge, wenn die Sprache hat keine Funktion, dies zu tun?
Wenn Sie brauchen, um zu Sortieren, eine Liste der Elemente, aber die Programmiersprache nicht erleichtern dieses Szenario, was wäre eine gute Technik, dies zu tun? Dies ist hypothetisch, aber lohnt sich zu Fragen.
Dank
- Dies ist nicht eine hypothetische Frage: es gibt Sprachen ohne eingebaute Fähigkeit zum Sortieren einer Liste von Elementen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beiden Teile der Frage:
Die zwei Allgemeinen Arten der Sortierung, die am besten geeignet sind für die alphabetische Sortierung sind:
Vergleich Sorten sind häufiger (teilweise, weil Sie mehr allgemein in dem, was Sie können Sortieren, Teils, weil die Anwendung einer radix-Sortieren von Zeichenfolgen mit variabler Länge ist etwas fummelig im Vergleich mit einer festen Breite radix-sort). Es gibt viele, zum von zu wählen mit unterschiedlichen trade-offs, aber alle behandeln die eigentlichen Vergleich zweier Elemente als "black box", getrennt von den sort-Algorithmus ordnungsgemäße.
So werden die übrigen Funktionen benötigt, ist ein lexikographischer Vergleich. Die Methode zum vergleichen von zwei strings ist, schauen Sie auf jedes Zeichen wiederum, bis das erste paar, wo Sie sich unterscheiden, und die linke-hand-string ist "weniger", wenn dieser Charakter ist "weniger". Wenn Sie nicht finden, eine Differenz, dann wird entweder die strings die gleiche Länge haben (in dem Fall sind Sie gleich), oder nicht (in diesem Fall der kürzere "weniger").
Wenn dein Zeichensatz ist ASCII, dann ist es ganz einfach, vergleichen Sie die Zeichen in alphabetischer Reihenfolge (entweder case-sensitive oder case-insensitive). Wenn dein Zeichensatz ist unicode, dann müssen Sie möglicherweise entweder die Sprache unterstützen, oder ein third-party-Bibliothek, oder eine sehr große Tabelle, Charakter-Eigenschaften, um den genauen alphabetischer Reihenfolge, die Sie wollen.
Gibt es sehr ausführliche Berichterstattung auf Wikipedia: http://en.wikipedia.org/wiki/Sorting_algorithm
Es hat eine lange Liste von verbreiteten algorithmen und Informationen über Ihre Vorteile und Nachteile.
Die Schritte sind die gleichen wie das schreiben von Sortier-Algorithmus. Erstellen Sie eine Vergleich-Funktion. Dann mit was auch immer Sortier-Algorithmus geeignet ist, die in den meisten Fällen ist quicksort. Für die Vergleich-Funktion wird die Zuordnung eines numerischen Wertes zu jeder Brief und vergleichen Sie dann die Buchstaben von Rang. Dies wird Ihnen eine lexigraphic Sortieren, aber das ist, was ich vermute, du meintest keiner Weise.
Im Grunde die Antwort auf Ihre Frage ist zu verstehen, wie die Sortierung funktioniert. Eine gute Referenz wäre Jonathan Shewchuk ' s video-vorlesungen auf die gleiche.
Geben, drei Stunden, und Sie sind auf dem richtigen Weg mit den Grundlagen. 🙂
Verwenden Trie =)
10
und jeder Knoten im median eine10
Unterknoten, dann ist für die Suche eine Zeichenfolge, die Sie tun sollten, um100
prüfen, aber wenn Sie Sortieren durch die Art und Weise, wie QS, die Sie suchen können es mit10
überprüfen, und die Komplexität der Suche ist nicht so hart, wie Trie.Gibt es eine wirklich gutes tool auf das internet für diese Art von Frage
Als Sie haben es nicht gefunden, ist hier ein guter Ausgangspunkt: quicksort