Arrays 在Go中合并两个数组。。。容器分配错误
整个上午我都在试图找出我的代码出了什么问题,但没能。它说它不能分配容器。请检查这个游戏场地 下面是有问题的代码Arrays 在Go中合并两个数组。。。容器分配错误,arrays,sorting,merge,go,mergesort,Arrays,Sorting,Merge,Go,Mergesort,整个上午我都在试图找出我的代码出了什么问题,但没能。它说它不能分配容器。请检查这个游戏场地 下面是有问题的代码 func My_Merge(container []int, first_index int, mid_index int, last_index int) { left_array := make([]int, mid_index-first_index+1) right_array := make([]int, last_index-mid_index)
func My_Merge(container []int, first_index int, mid_index int, last_index int) {
left_array := make([]int, mid_index-first_index+1)
right_array := make([]int, last_index-mid_index)
temp_i := 0
temp_j := 0
for i := first_index; i < mid_index; i++ {
left_array[temp_i] = container[i]
temp_i++
}
for j := mid_index; j < last_index+1; j++ {
right_array[temp_j] = container[j]
temp_j++
}
i := 0
j := 0
for elem := first_index; elem < len(container); elem++ {
if left_array[i] <= right_array[j] {
container[elem] = left_array[i]
i++
if i == len(left_array) {
container[elem+1:last_index] = right_array[j:]
break
}
} else {
container[elem] = right_array[j]
j++
if j == len(right_array) {
container[elem+1:last_index] = left_array[i:]
break
}
}
}
}
func My\u Merge(容器[]int、第一个索引int、中间索引int、最后一个索引int){
左数组:=make([]整数,中间索引-第一个索引+1)
右数组:=make([]int,最后一个索引-mid索引)
温度i:=0
温度j:=0
对于i:=第一个指数;i 如果left_array[i]无法在Go中指定切片表达式。您需要使用copy:
copy(container[elem+1:last_index], right_array[j:])
但显然还有其他问题,因为当我在操场上改变它时,我会得到一个超出范围的错误指数