我正在实施排序,但在 Go 语言中不断收到索引绑定错误。我的代码如下 func My_Partition(container []int, first_index int, last_index int) int { var x int = container[last_index] i := first_index - 1 for j := first_index; i < last_index; j++ { if container[j] <= x { i += 1 my_Swap(&container[i], &container[j]) } } my_Swap(&container[i+1], &container[last_index]) return i+1 }我在“if container[j] <= x”行中收到错误,提示panic:运行时错误:索引超出范围 main.My_Partition(0x2101b20c0, 0x7, 0x7, 0x0, 0x6, ...)/Path/main.go:34 +0xff有人有想法吗?我的交换功能在下面 func my_Swap(a *int, b *int) { temp := *a *a = *b *b = temp }但我不认为交换是问题所在。
1 回答
莫回无
TA贡献1865条经验 获得超7个赞
你有一个错字:
for j := first_index; i < last_index; j++ {
应该:
for j := first_index; j < last_index; j++ {
很容易犯的错误:-)
- 1 回答
- 0 关注
- 271 浏览
添加回答
举报
0/150
提交
取消