www.vorhilfe.de
Vorhilfe

Kostenlose Kommunikationsplattform für gegenseitige Hilfestellungen.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Vorhilfe
  Status Geisteswiss.
    Status Erdkunde
    Status Geschichte
    Status Jura
    Status Musik/Kunst
    Status Pädagogik
    Status Philosophie
    Status Politik/Wirtschaft
    Status Psychologie
    Status Religion
    Status Sozialwissenschaften
  Status Informatik
    Status Schule
    Status Hochschule
    Status Info-Training
    Status Wettbewerbe
    Status Praxis
    Status Internes IR
  Status Ingenieurwiss.
    Status Bauingenieurwesen
    Status Elektrotechnik
    Status Maschinenbau
    Status Materialwissenschaft
    Status Regelungstechnik
    Status Signaltheorie
    Status Sonstiges
    Status Technik
  Status Mathe
    Status Schulmathe
    Status Hochschulmathe
    Status Mathe-Vorkurse
    Status Mathe-Software
  Status Naturwiss.
    Status Astronomie
    Status Biologie
    Status Chemie
    Status Geowissenschaften
    Status Medizin
    Status Physik
    Status Sport
  Status Sonstiges / Diverses
  Status Sprachen
    Status Deutsch
    Status Englisch
    Status Französisch
    Status Griechisch
    Status Latein
    Status Russisch
    Status Spanisch
    Status Vorkurse
    Status Sonstiges (Sprachen)
  Status Neuerdings
  Status Internes VH
    Status Café VH
    Status Verbesserungen
    Status Benutzerbetreuung
    Status Plenum
    Status Datenbank-Forum
    Status Test-Forum
    Status Fragwürdige Inhalte
    Status VH e.V.

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
Dt. Schulen im Ausland: Mathe-Seiten:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
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.vorhilfe.de