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

Me

func findKthLargest(nums []int, k int) int {
    sort.Ints(nums)
	return  nums[len(nums)-k]
}

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]
}

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
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值