Go语言实现归并排序算法 - 详细代码解析
package main\n\nimport "fmt"\n\nfunc mergeSort(arr []int) []int {\n\tif len(arr) <= 1 {\n\t return arr\n\t}\n\n\tmiddle := len(arr) / 2\n\tleft := mergeSort(arr[:middle])\n\tright := mergeSort(arr[middle:])\n\n\treturn merge(left, right)\n}\n\nfunc merge(left, right []int) []int {\n\tresult := make([]int, len(left)+len(right))\n\ti, j, k := 0, 0, 0\n\n\tfor i < len(left) && j < len(right) {\n\t if left[i] < right[j] {\n\t result[k] = left[i]\n\t i++\n\t } else {\n\t result[k] = right[j]\n\t j++\n\t }\n\t k++\n\t}\n\n\tfor i < len(left) {\n\t result[k] = left[i]\n\t i++\n\t k++\n\t}\n\n\tfor j < len(right) {\n\t result[k] = right[j]\n\t j++\n\t k++\n\t}\n\n\treturn result\n}\n\nfunc main() {\n\tarr := []int{9, 7, 5, 11, 12, 2, 14, 3, 10, 6}\n\tfmt.Println("Before sorting:", arr)\n\tsortedArr := mergeSort(arr)\n\tfmt.Println("After sorting:", sortedArr)\n}
原文地址: https://www.cveoy.top/t/topic/pSmp 著作权归作者所有。请勿转载和采集!