日期:2014-05-19  浏览次数:20857 次

C#求一数组最大值
有一数组,(100,200,40,80,90,...,n),怎么求出这组数的最大值

------解决方案--------------------
up
------解决方案--------------------
最简单,冒泡。
------解决方案--------------------
数组排序,
------解决方案--------------------
int[] narrays = ....
Array.Sort( narrays );
int max = narrays[narrays.length-1]
------解决方案--------------------
冒泡法
------解决方案--------------------
遍历1次是最好的。只需n-1次计算。
他们说的都是排序算法,和你的要求不符

------解决方案--------------------
用冒泡吧
------解决方案--------------------
int[] narrays = ...
int max = 0;
for(int i=0;i <narrays.Length;i++)
{
if(narrays[i] > max)
max = narrays[i];
}
return max;

能用 效率不高
------解决方案--------------------
先排序然后再找
int[] narrays = {100,200,40,80,90,...,n}
Array.Sort( narrays );
int max = narrays[narrays.length-1]

------解决方案--------------------
不用冒泡,1遍循环就可以了
Red_angelX(八戒)的就可以了
------解决方案--------------------
hdt(倦怠) ( ) 的方法不錯。
------解决方案--------------------
如下
using System;
using System.Collections;

class ArrayMax
{
static void Main()
{
int[] nArr = {3,11, 66,23,767,3333};
Array.Sort(nArr, 0, nArr.Length-1);
Console.WriteLine(nArr[nArr.Length-1]);
}
}
------解决方案--------------------
Array.Sort是快排
因该比遍历一遍要快~
------解决方案--------------------
换个思路,假如是10000个数找最大的50个。。。。

先把头50个快排一下 ,然后插入排序,输出头50个 :)
------解决方案--------------------
不管怎么排序,都起码要历遍一次吧?而且排序还要比较、换位什么的。

还是历遍一次比较快。

不过我认为max还是设定为array[0],比较合适呀~
------解决方案--------------------
快排是什么意思?和普通排序有什么差别呀?
------解决方案--------------------
static void ReverseArray(int[] b) //倒序
{
for (int i = 0; i < b.Length/2; i++)
{
b[i] = b[i] ^ b[b.Length - 1 - i];
b[b.Length - 1 - i] = b[i] ^ b[b.Length - 1 - i];
b[i] = b[i] ^ b[b.Length - 1 - i];

//int t = b[i];
//b[i] = b[b.Length - 1 - i];
//b[b.Length - 1 - i] = t;
}

}
static void bubbleSort(int[] c) //冒泡排序
{
for (int i = 0; i < c.Length-1; i++)
{
for (int j = i + 1; j < c.Length; j++)
{
if (c[i] > c[j])
{
int t = c[i]; c[i] = c[j]; c[j] = t;
}

}

}

}

static void SelectSort(int[] c) //选择排序
{