Exemplo n.º 1
0
func InsertSort(toBeSorted interfaces.Swapable) {
	length := toBeSorted.Len()

	for i := 0; i < length-1; i++ {

		current := toBeSorted.Element(i + 1)
		j := i

		for ; j >= 0 && toBeSorted.Element(j).IsGreaterThan(current); j-- {
			toBeSorted.Swap(j+1, j)
		}
		toBeSorted.SetElement(j+1, current)
	}
}