JavaScript 程序按原始顺序查找数组的 k 个最大元素

我们将使用 JavaScript 数组排序方法和切片技术按原始顺序查找数组的 k 个最大元素。首先,我们对数组进行降序排序,然后从头到第k个索引进行切片,以获得最大的k个元素。通过保留元素的原始顺序,数据的重要性和上下文保持不变,使我们更容易分析和解释结果。

方法

按原始顺序查找数组中 k 个最大元素的方法可以描述如下 –

  • 创建一个新的空数组来存储最多 k 个元素。

  • 循环输入数组并将每个元素与新数组中的元素进行比较。

  • 如果新数组的元素少于 k 个,只需将当前元素添加到新数组即可。

  • 如果新数组有 k 个元素,则将当前元素与新数组中的最小元素进行比较。

  • 如果当前元素大于最小元素,则删除最小元素并将当前元素添加到新数组中。

  • 最后,按照输入数组中出现的原始顺序返回包含最大 k 个元素的新数组。

示例

这是一个完整的 JavaScript 工作示例,用于按原始顺序查找数组的 k 个最大元素 –

function findKMaxElements(arr, k) {
   
   // Create a copy of the original array
   let sortedArr = [...arr];
   
   // Sort the copy of the array in descending order
   sortedArr.sort((a, b) => b - a);
   
   // Slice the first k elements of the sorted array
   let kMaxElements = sortedArr.slice(0, k);
   
   // Create a result array to store the k maximum elements in their original order
   let result = [];
   
   // Loop through the original array
   for (let i = 0; i < arr.length; i++) {
      
      // Check if the current element is in the kMaxElements array
      if (kMaxElements.includes(arr[i])) {
         
         // If yes, add it to the result array
         result.push(arr[i]);
         
         // Remove the element from the kMaxElements array
         
         // to keep track of the elements that have already been added to the result
         kMaxElements.splice(kMaxElements.indexOf(arr[i]), 1);
         
         // If the kMaxElements array is empty, it means all k maximum elements have been found
         if (kMaxElements.length === 0) {
            break;
         }
      }
   }
   
   // Return the result array
   return result;
}
// Test the function with an example array
let arr = [3, 2, 1, 4, 5];
let k = 3;
console.log(findKMaxElements(arr, k));

说明

  • 函数findKMaxElements 采用数组arr 和整数k 作为输入。

  • 第一步是创建原始数组arr的副本,并使用sort方法按降序对其进行排序。这将使我们能够轻松找到 k 个最大元素。

  • slice方法用于提取排序数组的前 k 个元素并将它们存储在新数组 kMaxElements 中。

    李>

  • 创建结果数组以按原始顺序存储 k 个最大元素。

  • for循环用于循环原始数组arr。对于数组中的每个元素,代码使用 includes 方法检查它是否在 kMaxElements 数组中。

  • 如果当前元素位于 kMaxElements 数组中,则将其添加到 result 数组中。 splice 方法用于从kMaxElements 数组中删除元素,以跟踪已添加到结果中的元素。

  • 循环继续,直到找到所有 k 个最大元素并将其添加到结果数组中,或者到达原始数组的末尾。

  • 最后一步是返回结果数组,其中包含原始数组中按原始顺序排列的最大 k 个元素。

以上就是JavaScript 程序按原始顺序查找数组的 k 个最大元素的详细内容,更多请关注双恒网络其它相关文章!

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
8. 精力有限,不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别
9.本站默认解压密码为:www.sudo1.com
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。
不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。
本站信息来自网络收集整理,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。
如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。
我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!

云资源网 » JavaScript 程序按原始顺序查找数组的 k 个最大元素

常见问题FAQ

免费下载或者VIP会员专享资源能否直接商用?
本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
提示下载完但解压或打开不了?
最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。 若排除这种情况,可在对应资源底部留言,或 联络我们.。
你们有qq群吗怎么加入?
当然有的,如果你是帝国cms、易优cms、和pbootcms系统的爱好者你可以加入我们的QQ千人交流群https://www.sudo1.com/page-qun.html。
  • 会员数(个)
  • 12310资源数(个)
  •        
  • 资源(G)
  •        
  • 今日下载
  • 1505稳定运行(天)

提供最优质的资源集合

立即查看 了解详情