matheraum.de
Raum für Mathematik
Offene Informations- und Nachhilfegemeinschaft

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Schulmathe
  Status Primarstufe
  Status Mathe Klassen 5-7
  Status Mathe Klassen 8-10
  Status Oberstufenmathe
    Status Schul-Analysis
    Status Lin. Algebra/Vektor
    Status Stochastik
    Status Abivorbereitung
  Status Mathe-Wettbewerbe
    Status Bundeswettb. Mathe
    Status Deutsche MO
    Status Internationale MO
    Status MO andere Länder
    Status Känguru
  Status Sonstiges

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenAlgorithmen und Datenstrukturenalphabetische Sortierung
Foren für weitere Studienfächer findest Du auf www.vorhilfe.de z.B. Astronomie • Medizin • Elektrotechnik • Maschinenbau • Bauingenieurwesen • Jura • Psychologie • Geowissenschaften
Forum "Algorithmen und Datenstrukturen" - alphabetische Sortierung
alphabetische Sortierung < Algor.+Datenstr. < Theoretische Inform. < Hochschule < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Algorithmen und Datenstrukturen"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

alphabetische Sortierung: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 20:37 Do 23.10.2014
Autor: MeineKekse

Hi,

ich komme aus der Mathematik und möchte etwas über das Sortieren herausfinden. Insbesondere interessiert mich die die Realisierung eines alphabetischen Sortieralgorithmuses.

Wenn ich zum Beispiel die Zahlen 1,2,3,4,5,6,7,8,9 vergleich so habe ich einen klaren Ausgang wenn ich zum Beispiel 4 und 5 vergleiche, weiß man sofort, dass 4 kleiner als 5 ist. Habe ich jetzt aber zwei Wörter Zum Beispiel AAAAAB und AAAAAC. Dann stellt sich mir die Frage wie man die beiden vergleicht. Kann man diesen Wörten eventuell einen Index zuordnen, sodass man sofort weiß, dass AAAAAB vor AAAAAC kommt? Also ob man die die Reihenfolge mit einem einzigen Vergleich ermitteln kann oder geht man tatsächlich so vor, dass man zunächst den ersten Buchstaben vergleicht, dann aufgrund der Gleichheit den zweiten Buchstaben, dann den dritten, ..., bis man dann am 6ten Buchstaben erkennt, dass AAAAAB alphabetisch vor AAAAAC steht?

        
Bezug
alphabetische Sortierung: Antwort
Status: (Antwort) fertig Status 
Datum: 23:19 Do 23.10.2014
Autor: DieAcht

Hallo,


Deine Idee mit den Zahlen kann man realisieren, indem man zum
Beispiel [mm] $A:=0\$, $B:=1\$, \ldots [/mm] setzt. Allerdings wirst man in der Pra-
xis auf andere Methoden stoßen, wie zum Beispiel der direkten
Verwendung von ASCII (Graphen, Bäume, etc. lasse ich außen vor).

Mich verwundert es, dass du ein Mathematikstudent bist und wohl
noch nicht mit "Programmieren" in Verbindung gekommen bist. Das
sollte aber mit Sicherheit bald kommen. Alles andere würde mich
wundern.

Falls dich das "Sortieren" interessiert, dann musst du zwischen
vergleichsbasiertem Sortieren und nicht-vergleichsbasiertes Sor-
tieren unterscheiden. Ich empfehle allerdings mit ersterem an-
zufangen. Auf Wikipedia findest du sicher eine Liste aller üb-
lichen Sortierverfahren. Vielleicht probierst du aber zunächst
selbst zum Beispiel eine vorgegebene Liste, zum Beispiel

      [mm] A:=\{7,-5,100,2\}, [/mm]

mit einer Sprache deiner Wahl zu sortieren. Die Schwierigkeit
wird ziemlich schnell wachsen, aber das wirst du mit Sicher-
heit schnell selbst herausfinden.


Gruß
DieAcht

Bezug
        
Bezug
alphabetische Sortierung: Antwort
Status: (Antwort) fertig Status 
Datum: 18:54 Fr 24.10.2014
Autor: felixf

Moin,

um die Antwort von DieAcht etwas zu ergänzen:

> Habe ich jetzt aber zwei Wörter Zum
> Beispiel AAAAAB und AAAAAC. Dann stellt sich mir die Frage
> wie man die beiden vergleicht. Kann man diesen Wörten
> eventuell einen Index zuordnen, sodass man sofort weiß,
> dass AAAAAB vor AAAAAC kommt? Also ob man die die
> Reihenfolge mit einem einzigen Vergleich ermitteln kann
> oder geht man tatsächlich so vor, dass man zunächst den
> ersten Buchstaben vergleicht, dann aufgrund der Gleichheit
> den zweiten Buchstaben, dann den dritten, ..., bis man dann
> am 6ten Buchstaben erkennt, dass AAAAAB alphabetisch vor
> AAAAAC steht?

Normalerweise verwendet man für Wörter die sogenannte []lexikographische Ordnung. (Das ist in etwa das, was du oben beschreibst.) Diese heisst so, weil sie Wörter "wie im Lexikon" sortiert. Einen Index ordnet sie allerdings nicht zu. (Das geht gar nicht, sobald es mehr als einen Buchstaben gibt; siehe ganz unten.)

Dass man allen endlichen Buchstabenketten einen Index zuordnen kann folgt daraus dass die Menge dieser abzählbar ist. Das ist die mathematische Antwort ;-)

Eine konkrete Aufzählung anzugeben ist schon schwieriger. Wenn du $n$ Buchstaben hast, gibt es [mm] $n^k$ [/mm] Wörter mit genau $k$ Buchstaben. Wenn du $k$ festhälst, kannst du das Wort mit den Buchstaben [mm] $i_1, \dots, i_k$ [/mm] (wobei [mm] $i_j [/mm] = 0$ fuer den ersten Buchstaben, [mm] $i_j [/mm] = 1$ fuer den zweiten, ..., [mm] $i_j [/mm] = n-1$ fuer den $n$-ten Buchstaben sei) den Index [mm] $I(i_1, \dots, i_k) [/mm] := [mm] \sum_{j=1}^k i_j n^{j-1}$ [/mm] zuordnen; dies ist eine Zahl zwischen $0$ und [mm] $n^k [/mm] - 1$. Der Fall $n = 10$ sollte dir definitiv bekannt vorkommen.

Aus der mathematischen Sicht her kann man nun recht einfach Indices bestimmen, so dass ein Wort mit $k$ Buchstaben vor einem Wort mit [mm] $\ell$ [/mm] Buchstaben kommt, falls $k < [mm] \ell$ [/mm] ist. Die Indizes $0$ bis [mm] $n^0 [/mm] - 1$ beschreiben Woerter der Laenge 0, die Indices [mm] $n^0$ [/mm] bis [mm] $n^0 [/mm] + [mm] n^1 [/mm] - 1$ Woerter der Laenge 1, die Indices [mm] $n^0 [/mm] + [mm] n^1$ [/mm] bis [mm] $n^0 [/mm] + [mm] n^1 [/mm] + [mm] n^2 [/mm] - 1$ Woerter der Laenge 2, etc.

Ich vermute allerdings, dass du alle Woerter, die mit $A$ anfangen, vor allen Woertern, die mit $B$ anfangen, haben willst. Da es aber unendlich viele Woerter gibt, die mit $A$ anfangen, ist es nicht moeglich hier Indices zu verteilen, so dass alle Woerter, die mit $A$ anfangen, vor allen Woertern kommen, die mit $B$ anfangen. Wenn man nur einen Buchstaben hat, sagen wir $A$, dann geht das wieder: die Laenge des Wortes ist gerade der Index.

LG Felix


Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Algorithmen und Datenstrukturen"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.schulmatheforum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]