Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Minimum in einem Hash rausfinden

Empfohlene Antworten

Veröffentlicht

Hi Forum,

mal ne Frage, wie kann ich in einem Hash in dem Double-Objekte abgespeichert sind den Key mit dem kleinsten Value rausfinden?? Hat einer sowas schonmal gemacht??:confused:

Die einzige Möglichkeit wird sein, dass du dir die Enumeration der Hashtable zurückgibst und diese dann in einer Schleife durchläufst (also alle Werte rausholst).

Wenn der aktuelle Wert kleiner ist als der vorherige, speicherst du ihn in einer Variable usw.

Eine andere Möglichkeit wüsste ich jetzt nicht.

Snowghost

Genau richtig und dann geben wir dem Kind einen Namen und nennen das BubbleSort

Ist mir gerade so eingefallen :-)

Hör auf mit BubbleSort, das ist ja fast wie Hello World!*tret*

*gg*

Jetzt geht hier aber einiges durcheinander. Wenn ich das Minimum finden möchte, dann muß ich wohl oder übel durch meine ganzen Daten "durchwandern". Es sei denn, ich habe eine Struktur, die beim Einfügen (oder sonstwann) sortiert. Dann kann ich ja wissen, daß das Minimum vorne oder auch hinten steht (je nach dem, wie man sortiert). Mit BubbleSort hat das nicht so viel zu tun. Eine Hashtable ist eine Struktur, die nicht sortiert. Hier weiß man nicht, an welcher Stelle das Minimum gespeichert ist. Also muß ich mir alle Werte anschauen, um das Minimum zu erhalten.

Hallo Welt und BubbleSort haben übrigens durchaus ihre Berechtigungen, aber das würde hier wohl zu weit vom Thema wegführen.

Jan

BubbleSort heisst BubbleSort weil ich so lange eine Blase mit dem gewünschten Wert behalte bis ich einen besseren Wert gefunden hab. Somit gehe ich sehr wohl durch meine Daten durch...

Das ist leider nicht richtig. Ein BubbleSort ist immer mit einer Sortierung verbunden. Nur das Minimum zu finden sortiert die Daten nicht und verändert sie, im Gegensatz zu BubbleSort, auch nicht.

Jan

eine perfomantere moeglichkeit waere, noch eine variable minimum zu definieren und den wert mit Double.MAX_VALUE zu belegen.

bevor du einen neuen wert in den hash einfuegst,

checkst du erstmal, ob der wert kleiner als minimum ist.

wenn ja, speicherst du den wert in mimimum.

gerade wenn du solche abfragen haeufig durchfuehrst, haettest du einen performance-gewinn.

Hallo *,

schlagt mich jetzt nicht bin ja nur Systemintegrator, aber wenn ich mich recht an meine Schulzeit erinnere, koennte man die Daten auch in einem Binären-Baum speichern um somit die Laufzeit zu optimieren und nicht mit jedem Element vergleichen zu müssen.

Weiss natuerlich nicht, ob das in diesem Beispiel möglich ist.

War nur so ne Idee, wenn ich mich täusche bitte ich um Aufklärung.

Mfg

Superuser

du liegst richtig

ein hash ist eigtl nicht fuer sowas gemacht, sondern ideal, wenn man schluessel-wert paare hat. auf einzelne elemente kann man ueber den schluessel sehr schnell zugreifen.

allerdings liegen die elemente in einem hash nicht sortiert vor.

meine loesung oben ist auch nicht perfekt, weil sie nicht den fall beruecksichtigt, dass ein objekt geloescht werden kann... dann stuende minimum immer noch auf dem alten wert.

war aber auch nur als denkansatz gedacht :-)

Man könnte auch ne SortedMap ala TreeMap verwenden, funzt wie ne Hash, sortiert sich nur selber, weiß aber nimmer genau nach was, mußte dir anschauen :D

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.