Autor Beitrag
Delphi-Laie
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1600
Erhaltene Danke: 232


Delphi 2 - RAD-Studio 10.1 Berlin
BeitragVerfasst: Sa 30.09.17 17:42 
Hallo Programmierfreunde!

Schon wieder versuche ich, einen Sortieralgorithmus zum Laufen zu bringen, mal wieder mit Java. Die Beschäftigung mit meinen in diesen Forum schon zu ähnlich gestellten Fragen brachte mich nicht so recht weiter.

Es geht um die angehängte Datei, die von github.com/coderplay...StableQuicksort.java stammt, die allerdings um diese beide:

ausblenden Quelltext
1:
2:
package InPlaceStableQuicksort;
import java.util.Comparator;


ersten Codezeilen ergänzt wurde. Oh Wunder, die Eclipse akzeptiert das.

Die automatische Codevervollständigung bietet mir in der Hauptdatei

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
import java.util.Comparator;

import InPlaceStableQuicksort.*;

public class HalloWelt {

  public static void main(String[] args) {

  }
}


bei Eingabe von

ausblenden Quelltext
1:
InPlaceStableQuicksort.					


in der Main-Prozedur die Klasse und das eigentliche Ziel meiner Begierde,

ausblenden Quelltext
1:
sort(data, comp);					


an. Letzteres wählte ich:

ausblenden Quelltext
1:
InPlaceStableQuicksort.sort(data, comp);					


Doch nun weiß ich nicht mehr so recht weiter. Anfänglich war beides - data und com - rot unterstrichen. Die erste Hilfe, die die Eclipse mir bietet, ist die Erzeugung einer lokalen Variable

ausblenden Quelltext
1:
Object[] data;					


woraufhin "data" nicht mehr rot unterstichen wird. Doch welches Format hat "data" - ein Array, eine Liste? Es ist doch ein Objekt, also ganz allgemeinen Formates, nicht wahr?

Nehme ich auch eine der angebotenen "Lösungen" für das rot unterstichene "comp" an (die erste mit der lokalen Variable), die dann lautet:

ausblenden Quelltext
1:
Comparator comp;					


hat das nur zur Folge, daß sowohl "com" weiterhin als auch "data" erneut rot unterstrichen sind. Andere "Lösungen" sind genauso "erfolgreich".

Kurzum, ich muß den Sortieralgorithmus mit Daten / einer Datenstruktur und einem Comparator "füttern", weiß jetzt aber nicht, wie.

Kann mir jemand helfen, bitte?

Vielen Dank und Gruß

Delphi-Laie

Edit: Ein wenig schlauer bin ich inzwischen. Es wird wohl ein Array als Datenstruktur erwartet. Muß also nur noch der Comparator für dessen Elemente definiert werden....

Edit 2: Ich habe es jetzt doch hinbekommen, nachdem ich mir nochmals www.entwickler-ecke....ewtopic.php?t=116472 zu Gemüte führte:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
import java.util.Comparator;

import InPlaceStableQuicksort.*;

public class HalloWelt {

  static class MyComparator implements Comparator<Integer> {
    @Override
    public int compare(Integer i1, Integer i2) {
      return Integer.compare(i1, i2);
    }
  }
  
  public static void main(String[] args) {
  
    //System.out.println("Hallo Welt");

      Integer [] myArray = {5,4,3,2,1};
       
      Comparator c = new MyComparator(); 
      InPlaceStableQuicksort.sort(myArray,c);
      
      System.out.println(myArray[0]);
      System.out.println(myArray[1]);
      System.out.println(myArray[2]);
      System.out.println(myArray[3]);
      System.out.println(myArray[4]);
  
  }
}
Einloggen, um Attachments anzusehen!
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 30.09.17 21:12 
- Nachträglich durch die Entwickler-Ecke gelöscht -

Für diesen Beitrag haben gedankt: Delphi-Laie