package main import "fmt" func findMedianSortedArrays(nums1 []int, nums2 []int) float64 { //1.合并两个切片 //2.如果是奇数个,中间数就为的索引sum/2 //3.如果是偶数个,中间数就位的索引(sum/2 + sum/2+1)/2 nums1 = append(nums1, nums2...) fmt.Println("排序前", nums1) //冒泡排序 for j := 0; j < len(nums1)-1; j++ { for i := 0; i < len(nums1)-1-i; i++ { if nums1[i] > nums1[i+1] { nums1[i+1], nums1[i] = nums1[i], nums1[i+1] } } } fmt.Println("排序后", nums1) var middle float64 if len(nums1)%2 == 0 { middle1 := nums1[len(nums1)/2-2] middle2 := nums1[len(nums1)/2-1] middle = float64((nums1[middle1] + nums1[middle2])) / 2 } else { //奇数个 index := len(nums1) / 2 middle = float64(nums1[index]) } return middle } func main() { //寻找两个有序数组的中位数 //nums1 = [1, 3] //nums2 = [2] //则中位数是 2.0 //nums1 = [1, 2] //nums2 = [3, 4] //则中位数是 (2 + 3)/2 = 2.5 num1 := []int{1, 3} num2 := []int{2, 4, 5} res := findMedianSortedArrays(num1, num2) fmt.Println(res) }