MCPcopy Index your code
hub / github.com/TheAlgorithms/Go / ParallelMerge

Function ParallelMerge

sort/mergesort.go:72–94  ·  view source on GitHub ↗

ParallelMerge Perform merge sort on a slice using goroutines

(items []T)

Source from the content-addressed store, hash-verified

70
71// ParallelMerge Perform merge sort on a slice using goroutines
72func ParallelMerge[T constraints.Ordered](items []T) []T {
73 if len(items) < 2 {
74 return items
75 }
76
77 if len(items) < 2048 {
78 return Merge(items)
79 }
80
81 var wg sync.WaitGroup
82 wg.Add(1)
83
84 var middle = len(items) / 2
85 var a []T
86 go func() {
87 defer wg.Done()
88 a = ParallelMerge(items[:middle])
89 }()
90 var b = ParallelMerge(items[middle:])
91
92 wg.Wait()
93 return merge(a, b)
94}

Callers

nothing calls this directly

Calls 3

MergeFunction · 0.85
mergeFunction · 0.85
AddMethod · 0.65

Tested by

no test coverage detected