Bitte um Hinweis für Java-Programm....

F

FrediFredsen

Aktives Mitglied
Thread Starter
Dabei seit
19.11.2004
Beiträge
317
Reaktionspunkte
2
Hallo zusammen,

ich habe ein kleines Problem mit einer Aufgabe von einem Übungszettel:

Aufgabe:

Entwickeln sie einen ALgo, der in O(n) Zeit die log(n) größten Zahlen einer unsortierten Folge findet und diese sortiert ausgibt.


public class ValueFinder

public static Comparable[] findGreatestValues
(Comparable[] values, int n)


So, nun zum Problem:
Ich kann mir grob vorstellen, wie der Algo funktionieren kann. das ist nicht das Problem. Ich frag mich nur wofür der zweite Parameter da ist.
In "values" ist ja das Feld. Das einzige, was ich mir für "n" vorstellen kann ist, dass da die Länge der Folge übergeben wird.

Ich will jetzt nicht anfangen und dann nachher einen Bock drin haben..

Ich bin mal gespannt, ob mir jemand helfen kann...

Danke
 
ich bin (noch) kein profi. aber ich glaube was du meinst ist die sort() Methode in der Collections-Klasse. Hab jetzt leider nicht soviel zeit, aber ich habe es aus "Java ist auch eine Insel", Kapitel 11.9.4 Sortieren.

Edit: hab vergessen zu sagen das "Java..Insel" umsonst ist und mit dem link geladen werden kann:
http://www.galileopro.de/openbook/javainsel4/galileocomputing_javainsel4.zip
 
Zuletzt bearbeitet:
FrediFredsen schrieb:
Hallo zusammen,

ich habe ein kleines Problem mit einer Aufgabe von einem Übungszettel:

Aufgabe:

Entwickeln sie einen ALgo, der in O(n) Zeit die log(n) größten Zahlen einer unsortierten Folge findet und diese sortiert ausgibt.


public class ValueFinder

public static Comparable[] findGreatestValues
(Comparable[] values, int n)


So, nun zum Problem:
Ich kann mir grob vorstellen, wie der Algo funktionieren kann. das ist nicht das Problem. Ich frag mich nur wofür der zweite Parameter da ist.
In "values" ist ja das Feld. Das einzige, was ich mir für "n" vorstellen kann ist, dass da die Länge der Folge übergeben wird.

Ich will jetzt nicht anfangen und dann nachher einen Bock drin haben..

Ich bin mal gespannt, ob mir jemand helfen kann...

Danke
Naja, Du hast doch in deiner Beschreibung schon einen Hinweis gegeben
;)
Das Abbruchkriterum soll doch scheinbar die Zeit sein...
 
O(n), int n ;)
na fällt der groschen?
ist dir die O-Notation nicht geläufig? ;)
 
Danke für die Hilfe, aber das Problem hat sich dadurch gelöst, dass es einen korrigierten Zettel gibt und nur noch das Array übergeben wird.
Ich hätte gedacht, dass n=values.length ist. Deshalb ist der 2. Parameter auch so seltsam gewesen....
 
na klappt´s denn? Auch schön die Sonderfälle (null-Parameter, values.length = 0, ...=1, ...=2 ) abgeklappert? Bemerkung zu O(log n) auf-oder abgerundet gemacht?

Waren nur so ein paar Ideen, für die nur allzu gern Punkte abgezogen werden... :)

Gruß,

Kay
 
Zurück
Oben Unten