Beat: numerisch/alpha gemischter Sortier-Algorithmus

Beitrag lesen

Du zerlegst die Strings in (maximale) Tokens, die jeweils nur aus numerischen[1] oder nur aus nicht-numerischen Zeichen bestehen. (Sagen wir Typ num bzw. string).

Du vergleichst zwei Tokens wie folgt:

  • beide Typ num: numerischer Vergleich (klar)
  • beide Typ string: string-Vergleich (Achtung: [2])
  • Typ num < Typ string

ja natürlich. Mit der ergänzung, dass der Fall gelöst ist, wenn für einen der beiden Strings kein Token vorliegt.

und zwei Strings anhand des ersten Paares von ungleichen Tokens.

Der Sonderfall ist notwendig, denn jeder Sring besteht aus mindestens einem ersten Token.

Gibts die nicht, ist der String mit weniger Tokens kleiner. (Haben sie gleich viele Tokens, die jeweils gleich sind, dann sind - klar - auch die Strings gleich.)

[1] Was ist mit Minuszeichen? Ist "-3" < "-2"? Ich würde denken, ja, das wäre natürlich, d.h. ein numerisches Token kann (u.U.) ein Minuszeichen haben. Was ist mit "a-3" und "a-2"? Und: Was ist mit Pluszeichen? Ist "+3" == "3"?

Das ist noch eine Frage, ob \d* und \D* Tokens ausschliesslich gebildet werden.
Ich glaube numerische gegen nicht numerische Tokens wäre eine andere Version eines sortieralgorithmus. Sozusagen die goldene Eier legende Wollmilchsau. Ich versuche mich zuerst an den normalen Eiern.

PS: Migräne, mein Kopf wie während der Defragmentierung. Werde das Thema heute wieder aufgreifen.

mfg Beat

--
><o(((°>           ><o(((°>
   <°)))o><                     ><o(((°>o
Der Valigator leibt diese Fische