当前位置:首页 » 网页前端 » 找出数组中最大的数前端
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

找出数组中最大的数前端

发布时间: 2023-02-14 08:32:57

㈠ js如何求数组元素最大值在数组中的位置

定义一个变量a =数组第一个元素,b=0 (也就是在数组中的位置)。 然后 for 循环数组,拿数组的每个元素和a 比较。比a大的,赋值给a,然后b=当前for循环的值。 循环结束后,b就是最大数值的位置。。思路就是这样。自己写收获更大

㈡ 用C#找出数组中的最大值和最小值

方法一:使用ArrayList
using
System.Collections;
int[]
arr
=
{2,4,5,6,6,55,66,89,105,669,569
};
ArrayList
list
=
new
ArrayList(arr);
list.Sort();
int
min
=
Convert.ToInt32(list[0]);
int
max
=
Convert.ToInt32(list[list.Count
-
1]);
Console.WriteLine("最大"
+
max
+"
最小:"+min);
方法二:用?:语句比较简单
for(int
i=0;i<array.length;i++)
{
int
a=0;b=0;
a>a[i]?(b=a):(b=a[i]);只要一轮for循环就能得出最大值,同理求出最小值.
}

c语言怎么编写函数,找出一维数组中的最大值和最小值,并计算出数组元素的平均值

前面已经有两位高手做出了回答,我运行了一下,《怺逺恒暒》有时候得不到正确的结果;《kaixingui2012》的不能运行,提示类型不对。不知道什么原因,也许是我的版本有问题?
我也做了一个,感觉运行还是不错的。请比较吧!

#include "stdio.h"
double fun(double a[],int n,int *max,int *min);/*函数原型声明:其中a为数组,
n为数组元素个数,max指向最大数,min指向最小数,函数返回值为平均值*/
int main()

{
double b[10],aver;
int x,y=10,max=0,*ma=&max,min=0,*mi=&min;
for(x=0;x<y;x++){b[x]=x*(x-8.25)*0.1;printf("数%d=%f\n",x,b[x]);}
aver=fun(b,y,ma,mi);
printf("最大的数为第%d个数(%f),最小的数为第%d个数(%f),平均值为%f",*ma,b[*ma],*mi,b[*mi],aver);
return 0;
}

double fun(double a[],int n,int*max,int*min)
{
int i;
double sum=0;
double max1=a[0],min1=a[0];
*max=0;
*min=0;
for(i=0;i<n;i++)
{
if(a[i]>max1){*max=i;max1=a[i];}
if(a[i]<min1){*min=i;min1=a[i];}
sum=sum+a[i];
}
printf("sum=%f,n=%d\n",sum,n);
return sum/n;
}

㈣ java找数组中的最大数放到最前面

public class FindMax {
public static void main(String[] args) {
int []arr=new int[]{1,2,3,4,5};//初始化数组
for(int i=0;i<arr.length;i++)
System.out.print(arr[i]+",");//打印数组元素
System.out.println();
int max=0;
int index=0;
for(int i=0;i<arr.length;i++){//找出数组中最大的元素,赋值给max
if(arr[i]>max){
max=arr[i];
index=i;//保存最大元素在数组中的索引位置
}
}
int []arr1=new int[5];//初始化数组arr1
int j=0;
for(int i=0;i<5;i++){//将除max外的元素赋值给arr1数组的后4位
if(arr[i]!=max){
arr1[j+1]=arr[i];
j++;
}
}
arr1[0]=max;//将最大值赋值给arr1的第一个元素
for(int i=0;i<arr1.length;i++)
System.out.print(arr1[i]+",");//打印出重新排后的数组
System.out.println();
}
}

㈤ C# 数组中求几个最大的数

int[] a=new int[]{10,32,43,12,5,36,28,45,72,49};//定义一个整型数组
Array.Sort(a); //对数据进行排序,默认为升序
int i=a.Length;
for (; i > a.Length - 3;i-- )//使用for循环输出数组最后三位,从大到小
{
Console.WriteLine(a[i-1]);//此处容易引发数组索引越界,所以需要-1
}
Console.Read();//没什么用,主要让显示的结果不会一闪而逝

㈥ 找出最大子数组(js实现)

有长度为n 的数组,其元素都是int型整数(有正有负)。在连续的子数组中找到其和为最大值的数组。

如 [1, -2, 3, 10, -4, 7, 2, -5]的最大子数组为[3, 10, -4, 7, 2]

直接使用循环,时间复杂度O(n^3),太高了,哈哈。

分治的思想在解题过程中是经常用到的,可以通过递归的计算,将复杂的事情简单化,并且时间复杂度能够降到跟树结构一样,为O(nlgn)

思考下: 选定一个基准,数组中间那位数。那么最大子数组出现的位置会有这么几种情况:

但是这样并不能知道最大子数组的元素,如何修改才可以呢?为了得到位置信息,那么在每次迭代的时候除了子数组的和我们还需要表示位置的值,也就是要返回多个值。

在js中函数不能返回两个基本类型值,但是可以返回数组或者对象

在这我采用了数组,因为我们在计算左右两侧maxSubArray的返回值时,分别需要不同的变量来接收。

因为有正有负,所以子数组的和的最大值肯定为正值(哪怕该子数组只有一个正数)。(思考下:如果数组中全是负数时呢?)

其次可以得出:最大子数组的第一个元素、最后一个元素肯定为正值。

开始遍历数组,记录两个变量 current_sum+=arr[i] , max_sum=0 ,一旦 current_sum<0 是不是 current_sum 中记录的连续元素就绝对不可能成为最大子数组?所以此时重置 current_sum=0 开始从下一个元素记录其连续片段的和。继续与 max_sum 比较即可。

在循环过程中只要 current_sum>max_sum ,就设置 max_sum =current_sum

这样只需要一个遍历,即可完成对最大子数组和的计算。时间复杂度O(n).

回答前面留下的思考:如果考虑到数组中全是负数的情况呢?

上面是根据 current_sum 是否小于0来决定 current_sum是 是否开始记录新的子数组的和。在数组向后扫描时,针对a[i+1]有两种选择:

那么判断条件是什么呢?是 current_sum +a[i] 与 a[i] 的值的比较。如果a[i]加上前面的和却更小,那就将其作为新数组的第一项,同时更新记录数组位置的值。

㈦ 求问大神,c++中怎么设计程序在一列数字中找出最大的数呢(⊙o⊙)

简单的方法是循环遍历,逐个比较。

或者你可以将数组封装在类中,定义一个变量保存最大值,以及一个索引变量记录该值索引,初始的时候为最大值设置为-999999,尽可能小,索引设-1,。当添加第一个数的时候保存到最大值,并记录索引,之后,每当添加一个数,就与最大值比较,如果大于最大值,则将当前值更新到该变量中,并更新索引,这样想要取最大值的时候就不需要循环遍历扫描了,直接取出来,效率比循环遍历要高,特别是数组很大的时候,或者频繁取最大值的时候,就无效一次次遍历。

此方法不仅可以知道最大值还可以知道是哪一个数。不过要构造这样的类,需要一点类的编程经验。

㈧ 求数组中的最大最小值

求数组中的最大值和最小值,一般使用假设法,即假设数组的第1个元素为最大值,同时也是最小值,然后遍历数组,找到最大值和最小值。示例如下:


#include<stdio.h>intmain(){inta[]={1,2,3,4,5,6,7,8,9,10};intmax,min;max=min=a[0];//假设第1个元素即是最大值也是最小值。intmax_pos=0,min_pos=0;//遍历数组,找出数组a中的最大数和最小数for(intinx=0;inx!=sizeof(a)/sizeof(int);++inx){if(a[inx]>max)max=a[inx],max_pos=inx;elseif(a[inx]<min)min=a[inx],min_pos=inx;}printf("最大数:%d 最小数:%d ",max,min);return0;}

㈨ 用指针实现:找出二维数组(设3行4列)中的最大数及其位置

在内存中实际上没有二维数组的概念,可以完全看成一维数组。求最大值,可以使用假设法,假设第1个元素为最大值,然后遍历数组,通过比较求出最大值即可。找到在1维数组中的维数再转换成二维数组中的维数即可。

#include<stdio.h>
intmain()
{
inta[3][4]={
{92,108,3000,1},
{100,101,102,103},
{799,10000,20,0}
};
int*pstart=&a[0][0];
intmax=a[0][0];
intpos=0;
for(intinx=0;inx!=12;++inx){
if(*(pstart+inx)>max)max=*(pstart+inx),pos=inx;
}
printf("最大值是:%d 其所在位置:a[%d][%d] ",max,pos/4,pos%4);
return0;
}