Auf dem Gebietsschema basierendes Sortieren in Javascript, Sortieren von Buchstaben mit Akzent und andere Varianten auf vordefinierte Weise

Auf Finnisch sortieren wirW nach demV (wie auf englisch) aber daW ist kein finnischer Muttersprachler, sondern eine Variante vonV, die gleichsam sortiert istV, aber in Fällen, in denen der einzige Unterschied zwischen zwei Wörtern das istV istW, dannV-version wird zuerst sortiert. Ein Beispiel zeigt die richtige Reihenfolge:

Vatanen, Watanen, Virtanen

In finnischV undW werden sortiert alsA undÁ. Á ist sortiert wieA, aber in Fällen, in denen es der einzige Unterschied ist, steht der Unakzentuierte an erster Stelle. Dieselbe Regel gilt für alle anderen Buchstaben mit Akzent, aber dieÅ, Ä undÖ werden separat nach Z sortiert.

Frage: Was wäre der beste Algorithmus, um dies zu sortieren?Varianten auf eine vordefinierte Weise? ( z.B.[Watanen, Vatanen, Virtanen] zu[Vatanen, Watanen, Virtanen] )?

Zusatz: Die Frage ist relevant, um auch andere Varianten in der Art und Weise abzudecken, in der sie definiert sindhttp://cldr.unicode.org/index/cldr-spec/collation-guidelinesDa die Technik mit großer Wahrscheinlichkeit dieselbe ist und die Antworten auf diese Frage einem möglichst breiten Publikum zugute kommen, können Sortieralgorithmen mit den in Unicode CLDR definierten Kollatierungsregeln kompatibel gemacht werden. Das Unicode-CLDR definiert drei Ebenen der Unterschiede zwischen Buchstaben: Primärebene (Basisbuchstaben), Sekundärebene (Akzentbuchstaben) und Tertiärebene (Groß- und Kleinschreibung).

Ich habe eine Art gedachtArray-Vorbereitung Wie bei der numerischen Sortierung, bei der wir alle Zahlen mit Nullen auffüllen könnten, damit sie als Zeichenfolgen verglichen werden. Ein Beispiel: Array[file1000.jpg, file3.jpg, file22.jpg] kann seinbereit Um es als Zeichenfolge zu vergleichen, füllen Sie es wie folgt mit Nullen auf:[file1000.jpg, file0003.jpg, file0022.jpg]. DurchVorbereitung von Array können wir es sehr schnell mit native Array.sort () sortieren.

Die Zielsprache ist Javascript, das keine Unterstützung für sortierungsbasierte Sortierungen bietet. Daher muss die benutzerdefinierte Sortierfunktion selbst erstellt werden. Der Algorithmus wird bevorzugt, aber wenn Sie auch Code haben, ist er +1 wert.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage