Sortieren von Arrays unter Beibehaltung der ID
Hi.
Im Rahmen des aktuellen Jugend-Forscht-Projekts hatte ich das Problem, ein Array von Integern zu haben, bei denen immer einer ID ein Funktionswert zugeordnet war. Nun wollte ich das ganze nach Funktionswert sortieren, aber hinterher in der Reihenfolge die ID wieder haben.
Einfaches Quicksort haut ja nicht hin, weil dann die Indizes sich veraendern.
Also hab ich mir folgendes gedacht: Ich multipliziere den Funktionswert mit dem maximalen Funktionswert, der moeglich ist, und addiere dann den Arrayindex (der kleiner ist als der maximale Funktionswert).
Geht so:
int array[5] = {99, 71, 22, 40, 1}; // Fiktive Daten
for (int i = 0; i < 5; i++)
{
array[i] *= FUNC_MAX;
array[i] += i;
}
sortarray (array, 5); // Funktion, die das Array sortiert
Bye,
Jannis.
Leave a Reply (Some HTML allowed).