美文网首页
计算数组中第n大的数

计算数组中第n大的数

作者: Dolores_520 | 来源:发表于2017-08-29 11:39 被阅读0次

简单实现方法

计算数组中最大的数
//一维数组
var a=[1,2,3,5];
console.log(Math.max.apply(null, a));    //最大值

//多维数组
var a=[1,2,3,[5,6],[1,4,8]];
var arr=a.join(",").split(",");          //转化为一维数组
console.log(Math.max.apply(null,arr));   //最大值
计算数组中第二大数
//一维数组
a=[1,2,3,5];
a[a.indexOf(Math.max.apply(null,a))] = null;         
Math.max.apply(null,a)

//多维数组
var a=[1,2,3,[5,6],[1,4,8]];
var arr=a.join(",").split(",");     //转化为一维数组
arr[arr.indexOf(Math.max.apply(null,arr).toString())] = null;
Math.max.apply(null,arr);
计算数组中第n大数
//一维数组
var a = [1,2,3,5];
a.sort(function(a,b){   //数组进行排序
   return b - a;
})
console.log(a[n+1]);    //返回数组第n大数

//多维数组
var a=[1,2,3,[5,6],[1,4,8]];
var arr=a.join(",").split(",");     //转化为一维数组
arr.sort(function(a,b){   //数组进行排序
   return b - a;
})
console.log(a[n+1]);    //返回数组第n大数

算法实现

快速排序
function quickSort(arr) {
    if(arr.length <= 1) {
        return arr;
    }
    var index = Math.floor(arr.length/2);
    var val = arr.splice(index,1)[0];
    var left = [], right = [];
    for(var i = 0; i < arr.length; i++) {
        if(arr[i] >= val) {
            left.push(arr[i]);
        } else {
            right.push(arr[i]);
        }
    }
    return quickSort(left).concat([val],quickSort(right));
}
var a = [2,7,5,1,6,4];
console.log(quickSort(a));    // [7, 6, 5, 4, 2, 1]
console.log(a[n+1]);          //返回数组第n大数

相关文章

  • 计算数组中第n大的数

    简单实现方法 计算数组中最大的数 计算数组中第二大数 计算数组中第n大数 算法实现 快速排序

  • 求数组中第N大的数

    方法1:选择、插入、冒泡排序时间复杂度:O(n^2)方法2:堆排序、快速排序时间复杂度:O(n*logn)方法3:...

  • 5. 第k大元素

    题目:在数组中找到第k大的元素(JAVA) 审题:输入:目标数n 输出:数组int[] nums 分析:...

  • LeetCode 215. Kth Largest Elemen

    @(LeetCode) 问题描述 找出数组中第 k 个最大的数。注意是数组排序后第 k 大的数,而不是去重后的第 ...

  • 第二大数--(搜狐畅游2018)

    题目:输入n个数,查找数组中第二大的数;输入描述:第一行n表示n个数,第二行n个空格隔开的数输入描述:输出第二大的...

  • 冒泡排序示范-从小到大 关键操作“自上而下前后比较”

    冒泡分析:1.第i趟沉(存)第i大的数 2. n个数比较n-1次 假设数组array有array.length个...

  • 归并排序和快速排序的衍生问题(二)

    取数组中第n大的元素 取数组中第n大的元素这个问题,相信大家在学习数据结构这门课中都遇到过。通常我们会使用某一排序...

  • 448-找到所有数组中消失的数字

    找到所有数组中消失的数字 题目 给定一个范围在 1 ≤ a[i] ≤ n (n = 数组大小 ) 的 整型数组,数...

  • 堆排序

    一、思想 对数组中[0,n-1]范围内的数从小到大排序。 将[0,n-1]范围内的数调整为最大堆,将第0个元素和第...

  • 第三大的数

    给定一个非空数组,返回此数组中第三大的数。如果不存在,则返回数组中最大的数。要求算法时间复杂度必须是O(n)。 示...

网友评论

      本文标题:计算数组中第n大的数

      本文链接:https://www.haomeiwen.com/subject/fqfodxtx.html