Go:数组超出索引恐慌错误

我正在实施排序,但在 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

 }

但我不认为交换是问题所在。


慕丝7291255
浏览 272回答 1
1回答

莫回无

你有一个错字:for&nbsp;j&nbsp;:=&nbsp;first_index;&nbsp;i&nbsp;<&nbsp;last_index;&nbsp;j++&nbsp;{应该:for&nbsp;j&nbsp;:=&nbsp;first_index;&nbsp;j&nbsp;<&nbsp;last_index;&nbsp;j++&nbsp;{很容易犯的错误:-)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go