MCPcopy Create free account
hub / github.com/TheAlgorithms/Go / mergePiles

Function mergePiles

sort/patiencesort.go:44–70  ·  view source on GitHub ↗
(piles [][]T)

Source from the content-addressed store, hash-verified

42}
43
44func mergePiles[T constraints.Ordered](piles [][]T) []T {
45 var ret []T
46
47 for len(piles) > 0 {
48 minID := 0
49 minValue := piles[minID][len(piles[minID])-1]
50
51 for i := 1; i < len(piles); i++ {
52 if minValue <= piles[i][len(piles[i])-1] {
53 continue
54 }
55
56 minValue = piles[i][len(piles[i])-1]
57 minID = i
58 }
59
60 ret = append(ret, minValue)
61
62 piles[minID] = piles[minID][:len(piles[minID])-1]
63
64 if len(piles[minID]) == 0 {
65 piles = append(piles[:minID], piles[minID+1:]...)
66 }
67 }
68
69 return ret
70}

Callers 1

PatienceFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected