求出数组最大值的方法

求出数组最大值的几种方法

1、排序法

使用数组的sort()方法对数组进行排序,得到一个从小到大的有序数组,数组的第一个和最后一个元素就是我们要找的最小值和最大值:

var arr = [3, 5, 1, 4, 2]
arr.sort(function(a, b) {
    return a - b;
})
console.log(arr);   // [1, 2, 3, 4, 5]
console.log(Math.max(...arr));  // 5

2、使用ES6的扩展符

Math.max( ...arr ) 获取数组中的最大值

var arr = [3, 5, 1, 4, 2]
console.log(Math.max(...arr))  // 5

3、假设法


var arr = [3, 5, 1, 4, 2];
var max = arr[0];

for(var i = 1; i < arr.length; i++) {
   arr[i] > max ? max = arr[i] : null;
}

console.log(max); // 5

4、使用 Math.max.apply( null , arr )

Math.max() 虽然能取到最小值,但是不支持数组,所以可以用 Math.max.apply( null , arr )来获取数组中的最大值。

var arr = [3, 5, 1, 4, 2];

var max = Math.max.apply(null, arr);
var min = Math.min.apply(null, arr);

console.log(max, min) // 5,1

5、冒泡排序

var arr = [3, 5, 1, 4, 2];
for (var i = 0; i < arr.length - 1; i++) {
    var isChange = true;
    for (var j = 0; j < arr.length - 1 - i; j++) {
        if (arr[j] > arr[j + 1]) {
            isChange = false;
            var temp = arr[j];
            arr[j] = arr[j+1];
            arr[j+1] = temp;
        }
    }
    if (isChange) {
        break;
    }
}
console.log(Math.max(...arr))  // 5

 

 

 

  • 12
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
可以使用以下方法来定义一个函数来计算二维数组的最值: ```c #include <stdio.h> int findMaxValue(int arr\[\]\[3\], int rows, int cols) { int max = arr\[0\]\[0\]; int index_i = 0; int index_j = 0; for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { if (arr\[i\]\[j\] > max) { max = arr\[i\]\[j\]; index_i = i; index_j = j; } } } printf("二维数组最大值为:%d\n", max); printf("下标i=%d, j=%d\n", index_i, index_j); return max; } int main() { int arr\[2\]\[3\] = {{100, 757, 36}, {121, 899, 989}}; int rows = sizeof(arr) / sizeof(arr\[0\]); int cols = sizeof(arr\[0\]) / sizeof(arr\[0\]\[0\]); findMaxValue(arr, rows, cols); return 0; } ``` 这个函数`findMaxValue`接受一个二维数组、行数和列数作为参数。它使用嵌套的循环遍历整个数组,找到最大值,并记录其下标。然后,它打印出最大值和对应的下标。在`main`函数中,我们定义了一个二维数组`arr`,并计算出行数和列数,然后调用`findMaxValue`函数来计算最大值。 请注意,这个函数假设二维数组的行数和列数是已知的,并且数组的大小是固定的。如果你的数组大小不是固定的,你可以将行数和列数作为额外的参数传递给函数。 #### 引用[.reference_title] - *1* *2* [C语言函数体 计算一维数组的最值和下标](https://blog.csdn.net/Aiden51/article/details/115269462)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [C语言:二维数组中求最大值](https://blog.csdn.net/weixin_63987141/article/details/129171761)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值