<pre>
package main
import "fmt"
func insertSort(arr []int) []int {
for i := 1; i < len(arr); i++ {
for j := i; j > 0; j-- {
if arr[j] < arr[j-1] {
arr[j], arr[j-1] = arr[j-1], arr[j]
} else {
break
}
}
}
return arr
}
func main() {
var a []int = []int{11, 2, 23, 4, 6, 9, 7, 1, 5, 0}
b := insertSort(a)
fmt.Println(b)
fmt.Println(a)
}
</pre>
**上面的代码竟然 打印出 a 和 b 一样。经过修改后**
<pre>
package main
import "fmt"
func insertSort(arr [10]int) [10]int {
for i := 1; i < len(arr); i++ {
for j := i; j > 0; j-- {
if arr[j] < arr[j-1] {
arr[j], arr[j-1] = arr[j-1], arr[j]
} else {
break
}
}
}
return arr
}
func main() {
var a [10]int = [10]int{11, 2, 23, 4, 6, 9, 7, 1, 5, 0}
b := insertSort(a)
fmt.Println(b)
fmt.Println(a)
}
</pre>
***打印出 a 和 b 不一样***
请问这是为什么呢?
有疑问加站长微信联系(非本文作者)