用go语言写一个选择排序算法
时间: 2024-05-02 20:22:44 浏览: 70
好的,以下是使用Go语言编写的选择排序算法:
```go
package main
import "fmt"
func selectionSort(arr []int) {
n := len(arr)
for i := 0; i < n-1; i++ {
minIndex := i
for j := i + 1; j < n; j++ {
if arr[j] < arr[minIndex] {
minIndex = j
}
}
arr[i], arr[minIndex] = arr[minIndex], arr[i]
}
}
func main() {
arr := []int{5, 3, 6, 2, 10}
fmt.Println("Before sorting:", arr)
selectionSort(arr)
fmt.Println("After sorting:", arr)
}
```
以上代码会输出以下结果:
```
Before sorting: [5 3 6 2 10]
After sorting: [2 3 5 6 10]
```
希望你对此满意,如有其他问题,请随时问我!
相关问题
用go语言实现一个快速排序算法
以下是使用 Go 语言实现快速排序算法的示例代码:
```go
package main
import "fmt"
func quickSort(arr []int, left, right int) {
if left < right {
pivot := partition(arr, left, right)
quickSort(arr, left, pivot-1)
quickSort(arr, pivot+1, right)
}
}
func partition(arr []int, left, right int) int {
pivot := arr[right]
i := left - 1
for j := left; j < right; j++ {
if arr[j] < pivot {
i++
arr[i], arr[j] = arr[j], arr[i]
}
}
arr[i+1], arr[right] = arr[right], arr[i+1]
return i + 1
}
func main() {
arr := []int{8, 5, 1, 9, 7, 6, 3, 2, 4}
quickSort(arr, 0, len(arr)-1)
fmt.Println(arr)
}
```
该示例代码定义了两个函数 `quickSort` 和 `partition`。`quickSort` 函数是递归的实现快速排序的主要函数。在该函数中,首先调用 `partition` 函数将数组分为两个部分,然后再对左半部分和右半部分分别调用 `quickSort` 函数进行排序。
`partition` 函数是快速排序算法的核心。该函数通过一个基准值(pivot)将数组分为两个部分,使得左半部分的所有元素都小于基准值,右半部分的所有元素都大于等于基准值。在该函数中,首先取最右边的元素作为基准值,然后定义两个指针 `i` 和 `j`,分别指向左半部分的最后一个元素和右半部分的第一个元素。接着从左向右遍历数组,如果当前元素小于基准值,则将该元素与 `i` 指针指向的元素交换,然后将 `i` 指针向右移动一位。最后,将基准值与 `i+1` 指针指向的元素交换,然后返回 `i+1`。
在主函数 `main` 中,定义了一个整数数组 `arr`,然后调用 `quickSort` 函数对该数组进行排序。最后输出排序后的数组。
用go语言写一个排序算法
好的,下面是一个用go语言实现的冒泡排序算法:
```
package main
import "fmt"
func main() {
arr := []int{3, 6, 2, 1, 4, 5}
bubbleSort(arr)
fmt.Println(arr)
}
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]
}
}
}
}
```
阅读全文