in an Introduction to Algorithm 2nd edition, I found insertion sort pseudo code
INSERTION-SORT(A)
1 for j <- 2 to length[A]
2 do key <- A[j]
3 //Insert A[j] into the sorted sequence A[1 □ j - 1].
4 i <- j - 1
5 while i > 0 and A[i] > key
6 do A[i+1] <- A[i]
7 i <- i -1
8 A[i + 1] <- key
but I can't understand how swap works here.
I think it needs a swap operation like this
INSERTION-SORT(A)
1 for j <- 2 to length[A]
2 do key <- A[j]
3 //Insert A[j] into the sorted sequence A[1 □ j - 1].
4 i <- j - 1
5 while i > 0 and A[i] > key
6 do temp <- A[i+1]
7 A[i+1] <- A[i]
8 A[i] <- temp
9 i <- i -1
10 A[i + 1] <- key
did I get something wrong? please help
What's happening in insertion sort is not a swap.
It is moving each item greater than the one you want to insert up by one index working down from the end of the currently sorted section, and then inserting the new record at the correct place after the old value is moved up.