leetcode 215. 数组中的第 K个最 大的元素(堆排序,C语言)

leetcode 215. 数组中的第 K个最 大的元素(堆排序,C语言)_第1张图片
数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素
快速排序

int cmp(const void* a, const void* b) {
   
    return *(int*)b - *(int*)a;
}

int findKthLargest(int* nums, int numsSize, int k){
   
    qsort(nums, numsSize, sizeof(int), cmp);
    return nums[k - 1];
}

堆排序

```c
/* 交换 */
void swap(int* a, int* b) {
   
    int tmp = *a;
    *a = *b;
    *b = tmp;
}

/* 从堆下层向上交换元素,使得堆为小根堆 */
void swim(int* nums, int k) {
   
    while (k >

你可能感兴趣的:(算法与数据结构,数据结构,排序算法,堆排序)