美文网首页
第n个最大(15分)

第n个最大(15分)

作者: 幻无虚生 | 来源:发表于2019-05-29 13:20 被阅读0次

随机数组值为1到100之间值的数组,数组长度len=1000,求第 n(n<len) 个最大的元素。

示例 :

输入: [33,22,33,15,22,43,51,51,62] 和 n = 4
输出: 43
//备注:排序的时候不去重

/******************************最大数**********/
function max_n()
{
    $len = 100;
    $array=array_100($len);
    $n     = 4;
    sort_b($array, $n);
}
function array_100($len)
{
    $array = [];
    for ($i = 0; $i < $len; $i++) {
        $array[] = rand(1, 100);
    }
    return $array;
}
function sort_b($array,$n){
    $len=count($array)-1;
    for($i=0;$i<$n;$i++){
        for($j=$len-$i;$j>0;$j--){
            if ($array[$j] > $array[$j - 1]) {
                $temp = $array[$j];
                $array[$j] = $array[$j -1];
                $array[$j - 1] = $temp;
            }
        }
    }
    echo $array[$n-1];
}

max_n();

以下方法使用了冒泡算法, 在第一层控制循环的次数 第二层循环数的比较. 因为我们是取第n的大小 我们可以在用n来控制循环的次数.

相关文章

  • 第n个最大(15分)

    随机数组值为1到100之间值的数组,数组长度len=1000,求第 n(n

  • Golang 排序

    215. 数组中的第K个最大元素 1、使用sort源码 2、冒泡排序 3、选择排序 对比n后面所有数,将最大的和n...

  • 2.常见算法的时间复杂度

    一.冒泡算法自己的理解:对于n个数,第1趟:比较n-1次才能找出最大(最小)的数字,第2趟:比较n-2次,第3趟:...

  • 10期特训营之其它函数

    基本用法 最大值MAX() 最小值MIN() 平均值Average() 第N大值 LARGE(区间或数组,N) 第...

  • 统计函数(Max、Min、Average)

    最大值 MAX( ) 最小值 MIN( ) 平均分 Average( ) 第N大值 LARGE(区域或数组,N) ...

  • 排序算法

    1 冒泡排序 如果是对n个数升序排序,冒泡排序每趟排序把一个最大值浮到最后。 第一趟,针对n个数,比较第1个数和第...

  • 《具体数学》读书笔记 kirai 16.11.2(第一章 递归问

    第1章 递归问题 河内塔设表示移动n个盘的步数,则:可以这么解释:先移动顶上的n-1个盘子,再移动最大的那个。接下...

  • 堆排序

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

  • [codevs]1077 多源最短路 --- Floyd

    题目描述 Description已知n个点(n<=100),给你n*n的方阵,a[i,j]表示从第i个点到第j个点...

  • 倒推年龄

    有n个人坐在一起。问第n个人几岁,他说比第n-1个人大2岁;问第n-1个人岁数,他说比第n-2个人大2岁;接着问第...

网友评论

      本文标题:第n个最大(15分)

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