[Algoritmi] Ordinamento di un array e sua reversibilità

ReggaetonDj
Ciao a tutti. Ho la necessità di ordinare un vettore ma poi poter risalire all'originale.

Ad esempio
se io ho:

a[1] = 30
a[2] = 40
a[3] = 50
a[4] = 10

Se vi applico un algoritmo come il Bubble Sort per un ordinamento decrescente avrò:

a'[1] = 50
a'[2] = 40
a'[3] = 30
a'[4] = 10

però vorrei tenere traccia del fatto che

a'[1], il valore ordinato che sta al III posto, era in realtà il vecchio a[1]

c'è un modo semplice per farlo con un linguaggio di basso livello?

Risposte
ReggaetonDj
ok mi rispondo da solo perchè è più semplice di quanto non credessi.

basta usare un indice!

esempio di prima

a[1] = 30
a[2] = 40
a[3] = 50
a[4] = 10

index[1] = 1
index[2] = 2
index[3] = 3
index[4] = 4



se applico il bubble sort affiancando agli scambi su a[] gli scambi su index[] avrò

a'[1] = 50
a'[2] = 40
a'[3] = 30
a'[4] = 10

index[1] = 3
index[2] = 2
index[3] = 1
index[4] = 4

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.