当前位置:   article > 正文

215. 数组中的第K个最大元素 golang_gofindkthlargest

gofindkthlargest

Me

func findKthLargest(nums []int, k int) int {
    sort.Ints(nums)
	return  nums[len(nums)-k]
}
  • 1
  • 2
  • 3
  • 4

golang实现快排和冒泡排序

1. bubbleSort

// method2
func swap(a *int, b *int) {
	temp := *a
	*a = *b
	*b = temp
}


func bubbleSort(nums []int) {
	for i:=0; i < len(nums); i++ {
		for j:=0; j < i; j++ {
			if nums[i] < nums[j] {
				swap(&nums[i], &nums[j])
			}
		}
	}

}


func findKthLargest(nums []int, k int) int {
	bubbleSort(nums)
	return  nums[len(nums)-k]
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

2.quickSort

func findKthLargest(nums []int, k int) int {

    quickSort(nums, 0, len(nums)-1)
    fmt.Print(nums)
    return nums[len(nums)-k]
}

func quickSort(arr []int, i, j int) {
 
    if i < j {
        mid := partition(arr, i, j)
        quickSort(arr, i, mid-1)
        quickSort(arr, mid+1, j)
    }
}


func partition(arr []int, i, j int) int {
  
    index := i-1
    target := arr[j]

    for left:=i; left < j; left++ {
        if arr[left] < target {
            index++
            arr[index], arr[left] = arr[left], arr[index]
        }
    }
    index++
    arr[index], arr[j] = arr[j], arr[index]
    return index
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/206271
推荐阅读
相关标签
  

闽ICP备14008679号