Ookay,
1 for p := 1 to ⌊k/2⌋
mezzi, stiamo andando fino alla metà della matrice.
2 t := ap
3 ap := ak−p+1
4 ak−p+1 := t
Questo modello può essere riconosciuto come "swap con temporanea t". E ciò che viene scambiato?
Ebbene, ape ak-p+1, uno è pl'elemento -esimo dall'inizio matrice , l'altra l' p-esimo un dall'estremità .
Quindi, per riassumere :
Si scambia la nprima esimo con l' nultimo valore di matrice esimo fino alla metà della matrice. E dopo? La matrice è invertita .
Si noti che il pseudocodice formato sembra davvero strano - e, cosa più importante - ambiguo.
È ak-p+1equivalente a a[k-p+1]o a[k]-p+1o a[k-p]+1? Se no, come hai fatto a esprimere gli altri.
Così in un primo momento, mi converto questo codice a una fonte reale di come Python, che è molto più facile da leggere.
Modifica .
I) Beh, come hai postato, la matrice va da a1a ak.
II) Pensa come si potrebbe scambiare i valori di due variabili ( ae b):
1 temp := a
2 a := b
3 b := temp
Naturalmente, dal momento che sovrascritto acon bin linea 2 , si doveva memorizzare il vecchio avalore in una temporanea, che è temp.