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

解决方案 »

  1.   

    int[] narrays = ....
    Array.Sort( narrays );
    int max = narrays[narrays.length-1]
      

  2.   

    int[] narrays = ...
    int max = 0;
    for(int i=0;i<narrays.Length;i++)
    {
         if(narrays[i] > max)
                max = narrays[i];
    }
    return max;能用  效率不高
      

  3.   

    先排序然后再找
    int[] narrays = {100,200,40,80,90,...,n}
    Array.Sort( narrays );
    int max = narrays[narrays.length-1]
      

  4.   

    不用冒泡,1遍循环就可以了
    Red_angelX(八戒)的就可以了
      

  5.   

    hdt(倦怠) ( ) 的方法不錯。
      

  6.   

    如下
    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]);
    }
    }
      

  7.   

    Array.Sort是快排
    因该比遍历一遍要快~
      

  8.   

    不管怎么排序,都起码要历遍一次吧?而且排序还要比较、换位什么的。还是历遍一次比较快。不过我认为max还是设定为array[0],比较合适呀~
      

  9.   

    谢谢楼上各位,Red_angelX(八戒) 的方法可以,现在又有一个问题,就是100,200,40,80,90,...,n这个数组是在数据库取的,string类型:string sz="100,200,40,80,90,...,n";
                int[] narrays = { sz }; //////////这里怎么写???
                int max = 0;
                for (int k = 0; k < narrays.Length; k++)
                {
                    if (narrays[k] > max)
                        max = narrays[k];
                }
      

  10.   

    Array.sort()是比遍历快点,刚做了试验120个数组大概快16个毫秒。
    string[] s=sz.split(',');
      

  11.   

    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
            }