Beispiel #1
0
func merge(data, aux sortable.Interface, start, mid, end int) {
	i, j := start, mid+1
	for k := start; k <= end; k++ {
		aux.Set(k, data.Get(k))
	}

	for k := start; k <= end; k++ {
		if i > mid {
			data.Set(k, aux.Get(j))
			j = j + 1
		} else if j > end {
			data.Set(k, aux.Get(i))
			i = i + 1
		} else if aux.Less(i, j) {
			data.Set(k, aux.Get(i))
			i = i + 1
		} else {
			data.Set(k, aux.Get(j))
			j = j + 1
		}

	}
}