summaryrefslogtreecommitdiff
path: root/sort/insertion.go
blob: 983edf21a1d6b7edd621a10738d69a880f75253f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package sort

import (
	"algorithms/ds"
)

func Insertion(a ds.ArrayList) ds.ArrayList {
	insertion(a, 0, len(a)-1)
	return a
}

func insertion(a ds.ArrayList, lo, hi int) {
	for i := lo; i <= hi; i++ {
		for j := i; j > 0; j-- {
			if a[j].Higher(a[j-1]) {
				break
			}
			a.Swap(j, j-1)
		}
	}
}