go语言实现冒泡排序
时间: 2023-02-10 18:11:03 浏览: 110
好的,下面是 Go 语言实现的冒泡排序算法:
```
package main
import "fmt"
func main() {
// 定义数组
arr := []int{5, 3, 8, 6, 4}
// 冒泡排序
for i := 0; i < len(arr); i++ {
for j := i + 1; j < len(arr); j++ {
if arr[i] > arr[j] {
arr[i], arr[j] = arr[j], arr[i]
}
}
}
// 输出排序后的数组
fmt.Println(arr) // 输出: [3 4 5 6 8]
}
```
冒泡排序的基本思路是:依次比较相邻的两个数,如果第一个比第二个大,就交换两个数的位置。通过多次这样的比较和交换,就可以将数组中的数按从小到大的顺序排序。
在上面的代码中,我们使用了两重循环来实现冒泡排序。第一重循环从 0 到 len(arr) - 1,第二重循环从 i + 1 到 len(arr) - 1。每次循环都会将相邻的两个数进行比较,如果第一个比第二个大,就交换两个数的位置。最终,整个数组就会按从小到大的顺序排好序。
相关问题
go 实现冒泡排序
下面是使用Go语言实现冒泡排序的示例代码:
```go
package main
import "fmt"
func bubbleSort(arr []int) {
n := len(arr)
for i := 0; i < n-1; i++ {
for j := 0; j < n-i-1; j++ {
if arr[j] > arr[j+1] {
// 交换相邻两个元素的位置
arr[j], arr[j+1] = arr[j+1], arr[j]
}
}
}
}
func main() {
// 测试数据
arr := []int{64, 25, 12, 22, 11}
fmt.Println("排序前:", arr)
bubbleSort(arr)
fmt.Println("排序后:", arr)
}
```
这个程序定义了一个`bubbleSort`函数,用于对传入的整数切片进行冒泡排序。外层循环用于控制排序的轮数,内层循环用于比较相邻两个元素的大小并交换它们的位置。在`main`函数中,我们定义了一个测试数据`arr`,并输出排序前和排序后的结果。运行这个程序,将输出以下结果:
```
排序前: [64 25 12 22 11]
排序后: [11 12 22 25 64]
```
这就是使用Go语言实现冒泡排序的方法。
go语言写个冒泡排序
冒泡排序是一种基本的排序算法,它的原理是将相邻的元素进行比较,如果第一个元素比第二个小则交换,一遍循环之后会将最大的数移到数组最后。不断重复上述步骤,直到数组有序。下面是Go语言实现冒泡排序的代码:
```
package main
import "fmt"
func bubbleSort(arr []int) []int {
for i := 0; i < len(arr)-1; i++ {
for j := 0; j < len(arr)-1-i; j++ {
if arr[j] > arr[j+1] {
arr[j], arr[j+1] = arr[j+1], arr[j]
}
}
}
return arr
}
func main() {
arr := []int{24, 69, 80, 57, 13}
fmt.Println("排序前:", arr)
arr = bubbleSort(arr)
fmt.Println("排序后:", arr)
}
```
在这个例子中,我们定义了一个bubbleSort函数,它接收一个整数数组作为参数,并返回排序后的数组。在函数中,我们使用两个嵌套的循环来实现冒泡排序。外层循环控制排序的轮数,内层循环控制每一轮中相邻元素的比较和交换。最后,我们在main函数中调用bubbleSort函数,并输出排序前和排序后的数组。
阅读全文