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

import (
	"algorithms/ds"
)

func Insertion(a ds.ArrayList) ds.ArrayList {
	length := len(a)

	for i := 0; i < length; i++ {
		for j := i; j > 0; j-- {
			if a[j].Higher(a[j-1]) {
				break
			}
			tmp := a[j]
			a[j] = a[j-1]
			a[j-1] = tmp
		}
	}

	return a
}