performance frage
-
Ich hab jetzt irgendwann aufgehört zu lesen, weil zwei Seiten vergeblich versucht wurde zu erklären, was das Problem an OPs Ansatz ist.
Nur ganz kurz. Falls das hier deine Punktewolke ist (Wege sind eingezeichnet, aber die hast du ja nicht): http://www.leda-tutorial.org/de/offiziell/Pictures/DFS_NUMDemoGraphWin.png
Dann würde dein Algo von 1|14 zu 15|18 ja als kürzesten Weg angeben, dass er über 19|19 geht. Aber wie man sieht, gibt es dort gar keine Verbindung (Fluss dazwischen).
-
okay super vielen danke
ich weiß zwar noch nicht was struct oder list ist, aber das lässt sich ja einfach googlen.
ich lese nur gerade primer und bin noch nicht sehr weit (s.300).
aber ich wollte einfach mal was programmieren, und ich muss sagen obwhol es sehr unneffizient ist, bin ich trotzdem stolz das ich es geschafft habe.naja ich werde mich jetzt mal in das obrige programm einlesen
vielen dank

-
Juchu, endlich Mal jemand, der zum Einstieg ein vernünftiges Buch liest.

-
okay ich habe mich in ein paar algorithmen eingelesen.
leider muss ich feststellen das mein grundwissen doch noch sehr viele lücken aufweist
Ich werde wohl erstmal bei meiner momentanen Version bleiben.Allerdings lasse ich nun die string koordinaten sofort in ein struct speichern und diesen struct speichere ich in einen vector. Das hat mir einen enormen perfomance vorteil verschafft =).
Danke schonmal dafür.Ein Problem habe ich leider noch und ich kann den fehler nicht finden.
Wenn die Distanz zu groß ist werden garbage werte ausgegeben(immer der selbe wert)Würde vielleicht jemand über den Code drüber schauen und mir ein paar tipps geben?
Leider ist der Code 250Zeilen groß und ich möchte ungern das forum vollspamen.
Dafür ist er gut Kommentiert
Also wenn sich jemand bereiterklären würde, wäre ich sehr dankbar.
bzw wenn sich jemand findet, dann würde ich ihn auch hier posten, wenn das in ordnung wäre.
-
Kommentare sind übrigens üblicherweise ein Zeichen von schlechtem Code.
-
314159265358979 schrieb:
Kommentare sind übrigens üblicherweise ein Zeichen von schlechtem Code.
weil der code kommentare braucht um verständlich zu sein ?
-
Richtig

-
314159265358979 schrieb:
Kommentare sind übrigens üblicherweise ein Zeichen von schlechtem Code.
Lösung: Kommentare entfernen.
-
Bashar schrieb:
314159265358979 schrieb:
Kommentare sind übrigens üblicherweise ein Zeichen von schlechtem Code.
Lösung: Kommentare entfernen.

-
314159265358979 schrieb:
Kommentare sind übrigens üblicherweise ein Zeichen von schlechtem Code.
Das stimmt nicht. Kommentare sind üblicherweise ein zeichen für Code, der mehr macht als simple GUI-Boilerplate Logik. Wenn du einen Algorithmus implementierst, dann gibt es oftmals teile, die zwar im originalpaper hergeleitet wurden, aber die Herleitung hat keine Intuition die stark genug ist, dass sprechende Variablennamen alleine den Code beschreiben können.
-
In seiner Größenordnung stimmt das normalerweise

-
otze schrieb:
314159265358979 schrieb:
Kommentare sind übrigens üblicherweise ein Zeichen von schlechtem Code.
Das stimmt nicht.
Das stimmt aber auch nicht.
otze schrieb:
Kommentare sind üblicherweise ein zeichen für Code, der mehr macht als simple GUI-Boilerplate Logik. Wenn du einen Algorithmus implementierst, dann gibt es oftmals teile, die zwar im originalpaper hergeleitet wurden, aber die Herleitung hat keine Intuition die stark genug ist, dass sprechende Variablennamen alleine den Code beschreiben können.
Das wäre der Idealfall. Ich beneide Dich um die Arbeitskollegen, die das auch so handhaben.
In der Welt passiert aber leider sowas:
http://stackoverflow.com/questions/3198615/wrote-a-quick-and-dirty-brainfuck-interpreter-what-could-i-do-betterAuf den ersten Eindruck erscheint es wie ein bestens kommentiertes Programm; es kann sogar Profis beeindrucken, wie hübsch es doch sei. Und zu sowas führt es, wenn man Anfänger zwingt, viele Kommentare zu schreiben. In Wirklichkeit ist es schlechtestens kommentiert. Die ganzen einfachen Sachen sind kommentiert, sodaß man alles doppelt liest, aber der elegante Trick, wie '[' und ']' zusammenarbeiten, ist kein Bißchen kommentiert(*). Da stottert man beim Lesen. Und zwar nicht umsonst: Der Code ist falsch.
Ich halte es so, daß ich dermaßen ausgewalzte Kommentare ein Zeichen von Unverständnis und Praxisferne halte, ein fettes Warnblinklicht, das mir sagt, ich hätte mich da nicht einmischen sollen, dann hätte ich den Code jetzt auch nicht lesen müssen.
Vielleicht wäre es gut, die Anfänger nicht mehr zum Kommentieren anzuhalten. Und die Profis sollten vor jede Klasse schreiben (können), warum sie diese Klasse einführen. Das wäre schön. Ach, was würden viele RessourcenManager und curiously recurring templates sterben. Nee, das klappt nie:
class RessourcenManager{ //Diese Klasse managt Ressourcen, ist doch kla, du. ...//weiter wie gehabt, oder noch schlimmer^(*) Man erkennt nur am ?:-Operator, daß der Schreiber sich dort viele Gedanken gemacht hat und ein Profi ist.^