我正在学习 golang,我正在尝试通过编写冒泡排序和使用指针来工作。
package main
import (
"fmt"
"math/rand"
)
func main() {
testTwo := make([]int, 10)
for i := 0; i <= len(testTwo)-1; i++ {
fmt.Print("\n")
testTwo[i] = rand.Intn(10)
}
for i := 0; i <= len(testTwo)-1; i++ {
for j := i + 1; j <= len(testTwo)-1; j++ {
testTwo[i], testTwo[i+1] = swap(testTwo[i], testTwo[i+1])
}
}
}
/*
Swaps the pointers of two adjacent elements in an array
*/
func swap(valOne, valTwo int) (int, int) {
valAddress := &valOne
valAddressTwo := &valTwo
if valOne <= valTwo {
temp_address := *valAddressTwo
*valAddressTwo = valOne
*valAddress = temp_address
} else {
temp_address := *valAddress
*valAddress = valTwo
*valAddressTwo = temp_address
}
return valOne, valTwo
}
这是迄今为止正在做的事情的一个例子。输入切片可能是 [4 1 2 9 8 4 1 5 7 6]。但它没有对所有内容进行排序。[1 4 9 2 4 8 5 1 6 7]。我应该添加另一个条件还是我在交换函数中使用指针的方式有问题?
四季花海
慕田峪9158850
相关分类