sortier algorithmus?
Verfasst: Mittwoch 11. April 2007, 21:43
Hallo,
ich habe weniger ein spezielles python problem, als ein allg. algorithmus problem. Nichts desto trotz erhoffe ich mir hier hilfe, da dieser Algo in einem python script anwendung finden soll.
Folgendes Problem: Angenommen ich hätte folgende Liste von Zeichenketten (in dieser Reihenfolge):
01111110
11111111
00011000
00111100
Diese soll nun sortiert werden, sodass sich folgendes Bild ergibt:
00011000
00111100
01111110
11111111
Leider ist ein int(i)^i nicht so leicht möglich, da die Zeichenketten beliebig lang werden können (max 1024 Zeichen) und ich somit bei der potenzierung leicht die grenzen MAX_INT überschreite. des weitern können die Zeichenkette natürlich 'Lücken' enthalten, z.B. Zeile 3 '01101010'. Somit ist die Sortierung wahrscheinlich nur mit einer Art 'Verteilungs-Algorithmus' möglich, wobei '01101010' > '01101110' und '11111111' > '0000000'. Beim Vergleich zweier String kann davon ausgegangen werden, daß beide gleich lang sind 'len(s1)==len(s2)'
Irgentjemand von euch Gurus ne Idee ?
Gruß
syracus
ich habe weniger ein spezielles python problem, als ein allg. algorithmus problem. Nichts desto trotz erhoffe ich mir hier hilfe, da dieser Algo in einem python script anwendung finden soll.
Folgendes Problem: Angenommen ich hätte folgende Liste von Zeichenketten (in dieser Reihenfolge):
01111110
11111111
00011000
00111100
Diese soll nun sortiert werden, sodass sich folgendes Bild ergibt:
00011000
00111100
01111110
11111111
Leider ist ein int(i)^i nicht so leicht möglich, da die Zeichenketten beliebig lang werden können (max 1024 Zeichen) und ich somit bei der potenzierung leicht die grenzen MAX_INT überschreite. des weitern können die Zeichenkette natürlich 'Lücken' enthalten, z.B. Zeile 3 '01101010'. Somit ist die Sortierung wahrscheinlich nur mit einer Art 'Verteilungs-Algorithmus' möglich, wobei '01101010' > '01101110' und '11111111' > '0000000'. Beim Vergleich zweier String kann davon ausgegangen werden, daß beide gleich lang sind 'len(s1)==len(s2)'
Irgentjemand von euch Gurus ne Idee ?
Gruß
syracus