Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.
Übungsblatt 1.2 b)
Guten Morgen,
Es geht um folgendes Beispiel:
Nachdem nun Zi und Sk bekannt sind, geben Sie (ebenfalls in Pseudocode) einen Algorithmus
an, der daraus den größten Wert M der gesamten Tabelle bestimmt. Dieser Algorithmus
soll aber mit der kleinstmöglichen Anzahl von Vergleichen auskommen: Im obigen Beispiel
genügen dafür insgesamt 3 Vergleiche zwischen paarweise verschiedenen Tabelleneinträgen.
Also hab ich 2 Arrays mit den Höchstwerten der jeweiligen Spalten und Zeilen.
Ich verstehe nur nicht, was mit 3 Vergleichen gemeint ist. Kann ein Vergleich in einer Schleife stecken und öfters durchlaufen werden? Oder ist wirklich gemeint 3 if Abfragen und Schluss. (Keine Schleife, etc.)
Mit freundlichen Grüßen,
frezy
[m]a > 0[/m] ist ein Vergleich.
Egal ob ein solcher Vergleich als alleinstehende Anweisung (im sequentiellen Code-Teil), in einer (geschachtelten) Schleife oder sonstwo steht: Sobald sie ausgeführt wird, gilt es als „+1 Vergleich“ - wird sie mehrmals ausgeführt, zählt sie entsprechend oft => die Summe aller Ausführungen aller Vergleiche (die sich auf Tabelleneinträge beziehen) darf max. 3 sein.
Also auch das sind schon 3 Vergleiche:
[m]wenn (S0 > S1 und S0 > S2 und S0 > S3), dann…[/m]
Schade
Ok aber danke das hat meine Frage beantwortet.
MfG
Frezy
Kann man davon ausgehen dass es nie eine nur aus bestehende negativen werten Spalte/Zeile geben wird ?
Sollte eigentlich nichts am Ergebnis ändern, ob Zahlen negativ oder positiv sind, also auch nicht, wenn bspw. alle negativ wären.
Was wäre denn dein Problem bei nur negativen Zahlen?
Meine Frage war bezueglich der zu entwickenlde Algorithmus der Frage a) ich lege ein leeres Array S oder Z ein und vergleiche immer an der entsprechende index der Wert in Z oder S mit ein Wert in der Tabelle T. Es wuerde nicht funktionnieren falls es eine ganze Zeile oder Spalte nur mit negativen Werten gaebe.
Mit „ich lege ein leeres Array“ meinst du vermutlich „ich lege ein Array mit 0en“ an… und das funktioniert i.d.R. nicht!
Die Suche nach den Minima würde dann auch nicht funktionieren, falls ausschließlich positive Werte in der Tabelle stünden…
Hallo leute mit der aufgabe 1.2 teil b komme ich auch nicht klar. Es kann (für mich zumindest) nicht gehen dass nicht mehr als 3 vergleiche gebraucht wird bei der frage.
Hat vielleicht jemand eine idee oder ein tip wenn es möglich sein sollte.
Danke
Die „3“ bezieht sich auf das konkrete Beispiel im Aufgabenblatt - deine Lösung muss allgemein (für beliebige Tabellen) sein und darf dann für größere Tabellen natürlich auch mehr Vergleiche verbraten.
Im vorgegebenen Beispiel reichen aber 3 Vergleiche (d.h. auch, dass dein Programm, wenn auf dieses Beispiel losgelassen, max. 3x Tabelleneinträge vergleichen darf) - schaue dir die Vorlesungsfolien (aud-01) nochmal genau an und überlege dir, wie man die größte/kleinste aus vier Zahlen mit drei Vergleichen identifiziert…
Hallo vielen dank erstmal.
Leider komme ich nicht dahinter. In der gemeinten Vorlesung gibt es zwar ein minsuche (wenn das gemeint war) aber auch hier sind es mehrere vergleiche. Egal wie rum ich es drehe sind es mind. 4 vergleiche. Ich könnte sortieren dann vergleichen aber auch in der sort. Sind es mehrere vergleiche.
Danke im voraus.
Du musst einfach überlegen ob du wirklich alles vergleichen musst bei 1.2 b) denn du hast ja schon vorher einen Vergleich gemacht und zwar in Zeilen und Spalten Versuch mit diesen bereits durchgeführten Vergleich weiter zu arbeiten. Denn in deinem Z-Array müsste ja schon einmal der größte Wert drin stehen.
Will hier nicht die Lösung nennen(Weiß nicht mal ob man das dürfte). Aber hoffe konnte dir weiterhelfen!
Also herzlichen dank für die rasche und freundlichen antworten.
Zaehlt das Nachschauen der beiden arrays Z und S welche groeser ist auch als Vergleich?
Ich komme immer nur auf 4 Vergleiche aber nicht auf 3 (in dem gegebenen Beispiel)
Edit:
Ich kann schon die 3 erreichen fuer dieses Beispiel in meiner Ueberlegung, jedoch waere sie nur in dem Beispiel effizient und kann gegf. zu schlechteren Ergebnissen fuehren wenn einer der beiden arrays Z oder S ueberdimensional groß und der andere eher klein ist
Ich zitiere aus dem ersten Übungsblatt: