数组中的第K个最大元素

题目链接:

215. 数组中的第K个最大元素 - 力扣(LeetCode)

题解:

首当其冲的方法是 排序 然后找到第k个最大的元素

js内置了sort方法,但是我还是自己回忆了一下快速排序(下次回忆一下归并排序)当然快排没过,排序算法应当是根本数据量来选择对应的算法,而不是用一个能搞好

code:

javascript 复制代码
var findKthLargest = function(nums, k) {
    if (nums.length === 0) return 0;
    mySort(nums);
    return nums[nums.length - k]; // 修正索引
};

贴出快排算法:

javascript 复制代码
function mySort(nums, start = 0, end = nums.length - 1) {
    if (start >= end) return;
    
    let temp = nums[start];
    let left = start;
    let right = end;
    
    while (left < right) {
        while (nums[right] > temp && left < right) right--;
        while (nums[left] <= temp && left < right) left++;
        
        if (left < right) {
            [nums[left], nums[right]] = [nums[right], nums[left]];
        }
    }
    
    [nums[start], nums[left]] = [nums[left], nums[start]];
    
    mySort(nums, start, left - 1);
    mySort(nums, left + 1, end);
}
相关推荐
Predestination王瀞潞31 分钟前
基础算法(Num012)
c语言·开发语言·算法·排序算法
NiKo_W38 分钟前
C++ 反向迭代器模拟实现
开发语言·数据结构·c++·stl
qianmo202144 分钟前
基于deepseek学习三角函数相关
学习·算法
YA10JUN44 分钟前
C++版搜索与图论算法
c++·算法·图论
Boop_wu1 小时前
[数据结构] 排序
数据结构·算法·排序算法
Tisfy1 小时前
LeetCode 1039.多边形三角剖分的最低得分:记忆化搜索(深度优先搜索)
算法·leetcode·深度优先·记忆化搜索
YuTaoShao1 小时前
【LeetCode 每日一题】1470. 重新排列数组——(解法一)构造数组
数据结构·算法·leetcode
劲镝丶1 小时前
顺序队列与环形队列的基本概述及应用
数据结构·c++
宝耶1 小时前
qqqqqqq
数据结构·算法·排序算法
bubiyoushang8882 小时前
雷达目标跟踪中扩展卡尔曼滤波(EKF)算法matlab实现
算法·matlab·目标跟踪