代码优化 - 求数组中的第 K 个最大元素

题目要求:

 

 

解法一:

直接用 sort 从大到小排序,取第 k 个

var findKthLargest = function (nums, k) {
      nums.sort((a, b) => { return b - a });
      return nums[k - 1];
};

 

解法二(优化性能):

使用冒泡排序,取倒数第 k 个

var findKthLargest = function (nums, k) {
  for (var i = nums.length - 1; i > nums.length - k - 1; i--) {
    var temp;
    for (var j = 0; j < i; j++) {
      if (nums[j] > nums[j + 1]) {
        temp = nums[j + 1];
        nums[j + 1] = nums[j];
        nums[j] = temp;
      }
    }
  }
  return nums[nums.length - k];
};

 

posted @ 2019-11-12 21:42  Leophen  阅读(304)  评论(0编辑  收藏  举报