查找数组中的最大值(最小值)及相对应的下标

简单的封装一个方法

假设数组 arr 中的最大值max或最小值min 为arr[0], 通过max或min与数组 arr 的值进行比较 ,得到想要的结果

(1)获取数组最大值(最小值)

 //获取最大值 1 function getMax(arr) {
 2     //假设最大值max 为arr[0]
 3     var max = arr[0];
 4     //遍历对比
 5     for (var i = 0; i < arr.length; i++) {
 6         //若max小于当前项 说明不是最大值 将当前项的值赋予max
 7         // 继续遍历对比找到最大的值
 8         if (max < arr[i]) {
 9             max = arr[i];
10         }
11     }
12     return max;
13 }
 //获取最小值 1 function getMin(arr) {
 2     var min = arr[0];
 3     for (var i = 0; i < arr.length; i++) {
 4         if (min > arr[i]) {
 5             min = arr[i];
 6         }
 7     }
 8
 9     return min;
10 }

(2)获取数组最大值(最小值)的下标

 //获取最大值的下标 1 function getMaxIndex(arr) {
 2     var max = arr[0];
 3     //声明了个变量 保存下标值
 4     var index = 0;
 5     for (var i = 0; i < arr.length; i++) {
 6         if (max < arr[i]) {
 7             max = arr[i];
 8             index = i;
 9         }
10     }
11     return index;
12 }
//获取最小值的下标 1 function getMinIndex(arr) {
 2     var min = arr[0];
 3     //声明了个变量 保存下标值
 4     var index = 0;
 5     for (var i = 0; i < arr.length; i++) {
 6         if (min > arr[i]) {
 7             min = arr[i];
 8             index = i;
 9         }
10     }
11     return index;
12 }
注:获取数组最大值(最小值)的下标时,当数组中最大值(最小值)有重复项时,返回的index值为数组中第一个最大值(最小值)的下标

举个栗子:
1 var arr = [66,3,66,66,3];
2 //打印结果
3 console.log(getMax(arr));       //  66
4 console.log(getMaxIndex(arr));  //  0
5 console.log(getMin(arr));       //  3
6 console.log(getMinIndex(arr));  //  1


原文地址:https://www.cnblogs.com/jny1990/p/10984614.html

时间: 2024-10-28 11:40:32

查找数组中的最大值(最小值)及相对应的下标的相关文章

经典算法详解(11)递归查找数组中的最大值

题目:编写一个程序,用递归的方法实现查找数组中的最大值. C++实现 1 #include<iostream> 2 3 using namespace std; 4 //第一种方法是常规方法,不是使用递归,首先将第一个元素的值赋值给max,然后遍历数组, 5 //当遇到超高max的值时将其赋值给max,最后就将得到最大值 6 int getMax_fir(int *arr,int n) { 7 int max = arr[0]; 8 for (int i = 1; i < n; i++)

寻找数组中的最大值最小值

解法一: 分别求出数组中的最大值和最小值.先扫描一遍数组,找出最大的数和最小的数.需要比较2*N次. 解法二: 一般情况下,最大值和最小值不相同.所以把数组分成两部分,然后再从这两部分中分别找出最大值和最小值. 最后,从奇偶数位上分别求出Max=9,Min=3,各需要比较N/2次,整个算法共需要比较1.5*N次. 解法三: 解法二破坏了数组,如果在遍历过程中进行比较,而不需要交换元素,就可以不破坏数组了.首先仍然按顺序将数组中相邻的两个数分在同一组(概念上的分组),然后利用两个变量Max,和Mi

js中如何快速获取数组中的最大值最小值

var a=[1,2,3,5]; alert(Math.max.apply(null, a));//最大值 alert(Math.min.apply(null, a));//最小值 多维数组可以这么修改: var a=[1,2,3,[5,6],[1,4,8]]; var ta=a.join(",").split(",");//转化为一维数组 alert(Math.max.apply(null,ta));//最大值 alert(Math.min.apply(null,

js获取数组中的最大值最小值

遍历方法: var tmp = [1,12,8,5]; var max = tmp[0]; for(var i=1;i<tmp.length;i++){ if(max<tmp[i])max=tmp[i]; } console.log(max); 使用apply方法: var a = [1,2,3,5]; console.log(Math.max.apply(null, a));//最大值 console.log(Math.min.apply(null, a));//最小值 多维数组可以这么修改

写一个方法求数组中的最大值,最小值,总和以及平均值。

class Program { /// <summary> /// 求数组中的最大值,最小值,总和以及平均值. /// </summary> /// <param name="nums">输入一个数组</param> /// <returns>返回一个新的数组(max,min,sum,avg)</returns> public static int[] GetMaxMinSumAvg(int[] nums) { i

javascript如何获取数组中的最大值和最小值

javascript如何获取数组中的最大值和最小值:比较数组中数值的大小时比较常见的操作,比较大小的方法有多种,比如可以使用自带的sort()函数,下面再来介绍一下其他比较常用的方法,代码如下: function getMaximin(arr,maximin) { if(maximin=="max") { return Math.max.apply(Math,arr); } else if(maximin=="min") { return Math.min.appl

小康陪你学JAVA--------得到数组中的最大值和最小值的实例

今天和大家分享如何得到数组中的最大值和最小值的实例. 范例:TestJava4_3.java 01 // 这个程序主要是求得数组中的最大值和最小值 02 public class TestJava4_3 03 { 04     public static void main(String args[]) 05  { 06  int i,min,max; 07  int A[]={74,48,30,17,62};    // 声明整数数组A,并赋初值 08 09  min=max=A[0]; 10

第2章 数字之魅——寻找数组中的最大值和最小值

寻找数组中的最大值和最小值 问题描述 对于一个由N个整数组成的数组,需要比较多少次才能把最大和最小的数找出来呢? 分析与解法 [解法一] 可以把寻找数组中的最大值和最小值看成是两个独立的问题,我们只要分别求出数组的最大值和最小值即可解决问题.最直接的做法是先扫描一遍数组,找出最大的数以及最小的数.这样,我们需要比较2*(N-1)次才能找出最大的数和最小的数.代码如下: 1 package chapter2shuzizhimei.findminmax; 2 /** 3 * 寻找数组中的最大值和最小

编程之美3:寻找数组中的最大值和最小值以及最大值和次大值

很开心,这是今天的第三篇文章啦!下午健身也感觉非常过瘾,托付宿舍妹子从日本代购的护肤品也到了.耳边漂浮着Hebe田馥甄的<魔鬼中的天使>文艺的声线,一切都好棒,O(∩_∩)O哈哈~.爱生活,爱音乐,爱运动,额,当然还有要爱学习啦!加油(^ω^) 额,扯远了.第三篇是关于寻找数组中的最大值和最小值.第一次看到这个题目的时候,楼主稍微鄙视了一下,因为觉得这个题目有什么好做的.但是楼主还是看了看<编程之美>上的写的,发现还是有必要记录一下,不一样的思考方式.很赞!大家和楼主一起哦,Are