Sortierung

Status
Nicht offen für weitere Antworten.

jobu0101

Bekanntes Mitglied
Hallo!

Ich habe ein Interger-Array und eine Funktion, die einen Integer erwartet und einen Integer ausgibt. Nun möchte ich die Elemente des Integer-Arrays nach Größe der Ausgabe bei Eingabe des entsprechenden Integers in die Funktion sortiert haben.
Im Prinzip handelt es sich also um eine zweispaltige Tabelle deren zweite Spalte sortiert wird, uns aber die erste interessiert.

Gibt es da schon vordefinierte Klassen, um das Problem möglichst einfach zu lösen?
 

jobu0101

Bekanntes Mitglied
Glaube nicht. Wie willst du das denn anstellen?

Unser Ursprungs Array sei int[] a und unsere Funktion int getValue(int i)

Wie soll jetzt der Code aussehen?
 

Marco13

Top Contributor
Ja, da kommt man mit Arrays.sort(int[]) (leider) nicht weit. Es gibt mehrere Möglichkeiten - man könnte das ganze in einen Integer[]-Array verwandeln und dann Arrays.sort(Object[], Comparator) verwenden, oder eine eigene sort-Methode schreiben, oder das ganze in einen int[n][2] packen und den dann mit Arrays.sort(Object[], Comparator) sortieren ... Teilweise hängt das auch davon ab, wie viele Elemente es sind, und wie aufwändig das Auswerten der Funktion ist
 
B

bygones

Gast
verzeiht... aber
<ot>
[groovy]
def k = [1,2,3,4]
def m = {i -> i * new Random().nextInt(42)} // oder wie auch immer diese ausgabe funktion ist
println k.collect(m).sort()
[/groovy]
</ot>
 

Marco13

Top Contributor
Java:
import java.util.*;

interface Function
{
    int f(int x);
}

class SampleFunction implements Function
{
    public int f(int x)
    {
        return x*x-5*x;
    }
}



class FunctionSort
{
    public static void main(String args[])
    {
        Random random = new Random(0);
        int n = 10;
        int input[] = new int[n];
        for (int i=0; i<n; i++)
        {
            input[i] = random.nextInt(10);
        }
        Function function = new SampleFunction();


        System.out.println("Input:");
        for (int i=0; i<n; i++)
        {
            System.out.println(input[i] + " --> " + function.f(input[i]));
        }

        int output[] = sort(input, function);

        System.out.println("Output:");
        for (int i=0; i<n; i++)
        {
            System.out.println(output[i] + " --> " + function.f(output[i]));
        }
    }


    public static int[] sort(int input[], final Function function)
    {
        Integer temp[] = new Integer[input.length];
        for (int i=0; i<input.length; i++)
        {
            temp[i] = input[i];
        }
        Arrays.sort(temp, new Comparator<Integer>()
        {
            public int compare(Integer i0, Integer i1)
            {
                int v0 = function.f(i0);
                int v1 = function.f(i1);
                return v0-v1;
            }
        });

        int output[] = new int[input.length];
        for (int i=0; i<input.length; i++)
        {
            output[i] = temp[i];
        }
        return output;
    }
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T sortierung der eingabe nach größe Java Basics - Anfänger-Themen 5
U Sortierung in collections testen Java Basics - Anfänger-Themen 11
A Sortierung Java Basics - Anfänger-Themen 18
G Java Sortierung Java Basics - Anfänger-Themen 3
P topologische Sortierung Java Basics - Anfänger-Themen 15
N Best Practice Ist die Sortierung richtig? Java Basics - Anfänger-Themen 3
M Topologische Sortierung Java Basics - Anfänger-Themen 1
S Sortierung Java Basics - Anfänger-Themen 4
K Sortierung eines int-Arrays von groß nach klein Java Basics - Anfänger-Themen 3
S Sortierung funktioniert nicht Java Basics - Anfänger-Themen 1
S Was ist schneller: direkte Sortierung oder indirekt ueber eine SortedMap..? Java Basics - Anfänger-Themen 10
F Collections Sortierung und Einfügen von Elementen Java Basics - Anfänger-Themen 1
L Lexikographische Sortierung eines Strings Java Basics - Anfänger-Themen 6
A Kleinste Ziffer im Array suchen um Sortierung zu erzeugen Java Basics - Anfänger-Themen 2
S Dateien/LinkedList/StringBuffer - SOrtierung klappt nicht so ganz Java Basics - Anfänger-Themen 2
D Sortieren in Abhängigkeit von einer anderen Sortierung Java Basics - Anfänger-Themen 14
K Sortierung von Zahlen Java Basics - Anfänger-Themen 13
S Sortierung funktioniert nicht Java Basics - Anfänger-Themen 9
B Hiilfee! Step by Step sortierung eines Arrays... Java Basics - Anfänger-Themen 19
G Bubblesort - Falsche Sortierung Java Basics - Anfänger-Themen 6
T Datenstruktur für Sortierung Java Basics - Anfänger-Themen 4
S Collections Sortieren von 3 Collections nach "einer Sortierung" Java Basics - Anfänger-Themen 3
R Shellsort Sortierung Java Basics - Anfänger-Themen 5
K Sortierung von Anzahl der Wörtern in ArrayList Java Basics - Anfänger-Themen 4
U Alter Berechnung + sortierung Java Basics - Anfänger-Themen 6
H Sortierung eines String[][] mit Bedingung Java Basics - Anfänger-Themen 7
M Frage zur Sortierung Java Basics - Anfänger-Themen 8
S problem mit sortierung interface comperator Java Basics - Anfänger-Themen 11
B OOP Comparator - Sortierung "optisch" Darstellen Java Basics - Anfänger-Themen 17
F Treemap und Sortierung? Java Basics - Anfänger-Themen 2
L Random Sortierung Java Basics - Anfänger-Themen 9
A Sortierung (Gernerics & Liste) Java Basics - Anfänger-Themen 9
F compareTo - Sortierung nach 2 Argumenten Java Basics - Anfänger-Themen 10
? hilfe bei Fehlersuche Sortierung List Java Basics - Anfänger-Themen 5
O Sortierung Denkanstoss Java Basics - Anfänger-Themen 7
G ArrayList mit ArrayList als Inhalt - komische Sortierung? Java Basics - Anfänger-Themen 12
P Brauche Hilfe bei Sortierung eines JTrees ! Java Basics - Anfänger-Themen 14
K Kurze Frage zur Sortierung von Array-Inhalten Java Basics - Anfänger-Themen 5
G String Sortierung nach mehreren Kriterien Java Basics - Anfänger-Themen 4
G Sortierung eines Arrays nach mehreren Kriterien Java Basics - Anfänger-Themen 6
Q HashMap Sortierung Java Basics - Anfänger-Themen 11
S Sortierung Rückgängig machen?! Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben