Mam tablicę 3 wartości zmiennoprzecinkowych:C - Sortowanie unosić tablicę natomiast śledzenie wskaźników
float norms[3];
norms[0] = 0.4;
norms[1] = 3.2;
norms[2] = 1.7;
Chcę uporządkować tę tablicę w porządku malejąco podczas śledzenia oryginalnych wskaźników wartości w tablicy.
Innymi słowy, biorąc pod tablicą norms[] = {0.4, 3.2, 1.7}
z odpowiednimi wskaźnikami {0, 1, 2}
, ja po prostu chce uzyskać tablicę odpowiadająca ints
który odzwierciedla oryginalne pozycje wartości float
w norms[]
następstwie zstępującej rodzaju. W tym przypadku będzie to {1, 2, 0}
.
Jaki jest najlepszy/najczystszy sposób, aby to osiągnąć?
Utwórz tablicę typu int o tej samej wielkości, zawierającą indeksy. Podczas sortowania macierzy float wystarczy odzwierciedlić operację zamiany w tablicy int. – jboockmann
Użyj struct z polem indeksu, napisz indeks każdego elementu przed sortowaniem, który zachowa oryginalną pozycję w tablicy. –
Po prostu wykonaj kopię oryginalnej tablicy. to jest to! Nie są potrzebne żadne przemyślane algorytmy optymalizacji. Przeprowadzka ... – Lundin