选择查找 #
时间复杂度O(n*n)
package main
import "fmt"
func selectionSort(arr []int) {
for i := range arr {
// 查找最小元素的索引
minIndex := i
for j := i + 1; j < len(arr); j++ {
if arr[j] < arr[minIndex] {
minIndex = j
}
}
// 如果最小元素不是第一个,交换它们
if minIndex != i {
arr[i], arr[minIndex] = arr[minIndex], arr[i]
}
}
}
func main() {
arr := []int{64, 25, 12, 22, 11}
selectionSort(arr)
fmt.Println("Sorted array:", arr)
}