首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C#求一数组最大值解决办法

2012-03-21 
C#求一数组最大值有一数组,(100,200,40,80,90,...,n),怎么求出这组数的最大值[解决办法]up[解决办法]最简

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) //选择排序
{


for (int i = 0; i < c.Length - 1; i++)
{
int k = i;
for (int j = i + 1; j < c.Length; j++)

{
if (c[k] > c[j])
{
k = j;
}

}

if (c[k] != c[i])
{
int t = c[i]; c[i] = c[k]; c[k] = t;
}

}
}

static int BinarySearch(int[] arr, int key) //折半查找法
{
int low = 0;
int high = arr.Length - 1;
int middle;

while (low <= high)
{
middle = (low + high) / 2;

if (key == arr[middle]) //匹配
{
return middle;
}
else if (key < arr[middle])
{
high = middle - 1; //查找数组的前半部分
}
else
{
low = middle + 1; //查找数组的后半部分
}
}
return -1;//没有找到则返回-1
}

热点排行