(items []T)
| 59 | } |
| 60 | |
| 61 | func MergeIter[T constraints.Ordered](items []T) []T { |
| 62 | for step := 1; step < len(items); step += step { |
| 63 | for i := 0; i+step < len(items); i += 2 * step { |
| 64 | tmp := merge(items[i:i+step], items[i+step:min.Int(i+2*step, len(items))]) |
| 65 | copy(items[i:], tmp) |
| 66 | } |
| 67 | } |
| 68 | return items |
| 69 | } |
| 70 | |
| 71 | // ParallelMerge Perform merge sort on a slice using goroutines |
| 72 | func ParallelMerge[T constraints.Ordered](items []T) []T { |