以下是使用 Go 语言实现归并排序算法的简单示例:
package main
import "fmt"
func mergeSort(arr []int) []int {
if len(arr) <= 1 {
return arr
}
mid := len(arr) / 2
left := mergeSort(arr[:mid])
right := mergeSort(arr[mid:])
return merge(left, right)
}
func merge(left, right []int) []int {
result := make([]int, 0, len(left)+len(right))
i, j := 0, 0
for i < len(left) && j < len(right) {
if left[i] < right[j] {
result = append(result, left[i])
i++
} else {
result = append(result, right[j])
j++
}
}
result = append(result, left[i:]...)
result = append(result, right[j:]...)
return result
}
func main() {
// 示例数组
array := []int{64, 34, 25, 12, 22, 11, 90}
fmt.Println("Unsorted array:", array)
// 调用归并排序函数
sortedArray := mergeSort(array)
fmt.Println("Sorted array:", sortedArray)
}
在这个例子中,mergeSort
函数接收一个整数切片,使用递归的方式进行归并排序。merge
函数用于合并两个已排序的切片。在 main
函数中,我们定义了一个示例数组,调用 mergeSort
函数对其进行排序,并输出结果。
归并排序算法的时间复杂度为 O(n log n),它是一种稳定的排序算法。在实际应用中,归并排序通常用于对链表等数据结构进行排序。文章来源:https://www.toymoban.com/news/detail-812498.html
希望你也学会了,更多编程请来二当家的素材网:https://www.erdangjiade.com文章来源地址https://www.toymoban.com/news/detail-812498.html
到了这里,关于Go 语言实现归并排序算法的简单示例(附上源码)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!