array sortieren

Ich hoffe ich konnte mich halbwegs verständlich ausdrücken ;)
Nö, leider nicht wirklich ...

Ich habe ein 10x10 Grid, das eine Landschaft darstellt
Jede Zelle hat eine andere Höhe
Wenn es regnet, dann fließt Wasser von der höheren Zelle in die niedrigste der umliegenden 8
Meinst Du mit 'Höhe' die Zellnummer ? ? ? ?

Die Richtung in die das Wasser fließt wird nicht mit Koordinaten angegeben, sondern als Absolutwert 0-99.
Ist eine Zelle flach, oder die niedrigste, dann fließt kein Wasser weg und sie bekommt den Wert -1.
aha ..... :confused:

Momentan ist das Array nach einer dritten Spalte sortiert, die angibt wieviele der 8 umliegenden Zellen Wasser in die Zelle abgeben.
Zeile 7 soll nur hinter die allerletzte 13 in Spalte 1 rein.
So so, eine dritte Spalte ..... :suspekt: :rolleyes:
Dann sehe ich aber nicht, wo die genannte Reihenfolge (bspw. der Zeilen 2 + 3) herkommt .....

Hmm - also einen echten Weg sehe ich da so auf die Schnelle nicht. Ich hatte auch zumindest vermutet, das nach Spalte 2 sortiert würde, da dies zumindest eine gewisse Eindeutigkeit erzeugen würde!

Gruß
Klaus
 
Nö, leider nicht wirklich ...

dacht ich mir...

Meinst Du mit 'Höhe' die Zellnummer ? ? ? ?

Nee, damit meine ich Höhe in Metern. Eine Zelle ist 7m hoch, die daneben nur 3m, also fließt Wasser von hoch nach tief ;)


So so, eine dritte Spalte ..... :suspekt: :rolleyes:
Dann sehe ich aber nicht, wo die genannte Reihenfolge (bspw. der Zeilen 2 + 3) herkommt .....

Die ergibt sich aus der Sortierreihenfolge
Erst nach Spalte 1, dann nach 2, nach 3 etc
Wobei ich genauso gut eine andere Reihenfolge nehmen kann.
Ich dachte ich vereinfache es, wenn ich hier nur die zwei Spalten hinschreibe, die für die "schönere" Sortierreihenfolge nötig sind und nicht alle 5. Wieder mal falsch gedacht :)

Hmm - also einen echten Weg sehe ich da so auf die Schnelle nicht.

Ich danke trotzdem für die Mühen!

Lg
Mareike
 
Hallo Mareike
Nee, damit meine ich Höhe in Metern. Eine Zelle ist 7m hoch, die daneben nur 3m, also fließt Wasser von hoch nach tief ;)
Aha ... und was hat das mit den dargestellten Zellenummern zu tun ? ? ? :confused:

Die ergibt sich aus der Sortierreihenfolge
Erst nach Spalte 1, dann nach 2, nach 3 etc
Wobei ich genauso gut eine andere Reihenfolge nehmen kann.
Ich dachte ich vereinfache es, wenn ich hier nur die zwei Spalten hinschreibe, die für die "schönere" Sortierreihenfolge nötig sind und nicht alle 5. Wieder mal falsch gedacht :)
Also wird doch nicht nach Spalte 3 sortiert ? ? ?
Und ein einmal sind es fünf Spalten ? ? ? :eek: :-(

Ich danke trotzdem für die Mühen!
Kein Problem - bemühen tue ich mich ja gerne, auch wenn ich immer verwirrter bin ;-]

Gruß
Klaus
 
Aaaaaaalso:

*gg*

Spalte 1: Wieviele der umliegenden Zellen entleeren in die gerade angeschaute? (0-8)
Spalte 2: In welche Zelle entleert die angeschaute? (0-99 oder in keine, dann -1)
Spalte 3: x-Koordinate der angeschauten Zelle im 10x10 Grid
Spalte 4: y-Koordinate
Spalte 5: Nummer der Zelle (berechnet aus x-Koordinate*10*y-Koordinate)

Ein kleines Beispielgrid mit Höhenangaben:

Code:
3 4 1 5
0 2 7 3
1 5 6 8

Und den Zellnummern:

Code:
0 1  2  3
4 5  6  7
8 9 10 11


Die Zelle an der Stelle 1/0 ist die niedrigste der Umgebenden
0/0 und 0/2 und 1/1 und 2/0 und 2/1 entleeren also alle in diese Zelle, mit der Zellnumer 4

Zelle 0/2 ist ebenfalls die niedrigste von dem Umgebenden.
0/2 und 1/1 entleeren schon in die noch niedrigere Zelle Nummer 4, die anderen der Umgebenden (0/3, 1/2 und 1/3) entleeren in die Zellnummer 2

Hmmm
Wahrscheinlich stifte ich nur mehr Verwirrung :)
 
Guten Morgen :)

Sorry dass ich mich jetzt erst melde :)

Kurzfristig dachte ich es auch ohne sortieren hinzubekommen, aber mit wäre doch besser.

Den ganzen Code würde ich ungern hier reinstellen, da nicht alles von mir ist.


Was möchte ich mit der Sortiererei erreichen?

Stell dir eine Landschaft vor, in der es regnet und dann fließt das Wasser, das nicht einsickert, ab.

Bisher ist die Liste so sortiert, dass ich mir erst die Zellen angucke, die nur von einer Zelle Wasser erhalten, danach die Zellen die von zweien Wasser erhalten usw.

Wenn aber eine Zelle nur von einer Wasser erhält und an eine weitergibt, die auch nur von dieser einen Wasser erhält, dann werden die zwei möglicherweise in der falschen Reihenfolgebearbeitet.

Bsp.

Es regnet 15 mm. Davon läuft 1 mm raus

Das heißt die erste die Wasser bekommt Zelle hat 15+1 und verliert dadurch nicht mehr 1, sondern 2 mm. Die zweite Zelle hat dann schon 15+2, also 17 mm

Wenn ich jetzt Zelle 2 zuerst anschaue bekommt sie nur 1mm dazu, was nicht stimmt.

Lg
mimita
 
Einen wunderschönen guten Morgen,

wir sprechen somit über folgendes Problemmodell:

Du hast eine Landschaftvorgegeben mit Höhenangaben und Zellnummern. Es regnet nun eine gewisse Menge gleichverteilt auf die gesamte Landschaft. Ein Teil des Wassers versickert (was uns nicht weiter interessiert) und der andere Teil fließt ab (was uns sehr wohl interessiert). Das Wasser fließt immer in die angrenzend niedrigste Zelle.

Was ist nun deine Problemstellung? Willst du das Array erstellen, welches den Wasserfluss angibt? In diesem Fall würde ich bei der Zelle beginnen, die die größte Höhenangabe hat, denn hier fließt nichts dazu. Danach die zweithöchste Zelle, usw. Und noch eine Frage: Was stellen die Zeilen in diesem Array dar?

Bitte korrigier mich, falls ich etwas nicht richtig verstanden habe. Es kann auch sein, dass ich eine Frage doppelt gestellt habe. Nach der Unterbrechung in diesem Problem muss ich mich erst wieder zurechtfinden.

Gruss
Mizi
 
Hallo :)

Du hast es richtig verstanden und die Idee mit den Höhenangaben ist mir auch grad gekommen. Manchmal hab ich einfach ein Brett vor'm Kopf ;)

Danke für's Gedanken machen!

Viele Grüße
mimita
 

Neue Beiträge

Zurück