zoukankan      html  css  js  c++  java
  • C#算法 最值/平均

    求最值和平均最简单的方法 循环遍历数组

    /// <summary>
        /// 最值平均类
        /// </summary>
        class MaxAveMin
        {
            private int[] intArray;
            public int maxValue;
            public int minValue;
            public int aveValue;
            public int total;
    
            public MaxAveMin(int[] array)
            {
                this.intArray = array;
                this.maxValue = intArray[0];
                this.minValue = intArray[0];
                this.aveValue = intArray[0];
            }
    
            public int GetAverage()
            {
                for (int i = 0; i < intArray.Length; i++)
                {
                    total += intArray[i];
                }
                this.aveValue = total / intArray.Length;
                return this.aveValue;
            }
    
            public int GetMaxValue()
            {
                for (int i = 0; i < intArray.Length; i++)
                {
                    if (this.maxValue < intArray[i])
                        this.maxValue = intArray[i];
                }
                return this.maxValue;
            }
    
            public int GetMinValue()
            {
                for (int i = 0; i < intArray.Length; i++)
                {
                    if (this.minValue > intArray[i])
                        this.minValue = intArray[i];
                }
                return this.minValue;
            }
    }

    使用排序(插入/选择/冒泡)

    /// <summary>
            /// 插入排序
            /// </summary>
            public void InsertSort()
            {
                for (int i = 1; i < intArray.Length; i++)
                {
                    //将第i个数插入到0到i-1的有序队列中
                    if (intArray[i] < intArray[i - 1])
                    {
                        int temp = intArray[i];
                        int j = 0;
                        //依次比较
                        for (j = i - 1; j >= 0 && temp < intArray[j]; j--)
                        {
                            intArray[j + 1] = intArray[j];
                        }
                        intArray[j+1] = temp;
                    }
                }
            }
    
            /// <summary>
            /// 冒泡排序 
            /// </summary>
            public void BubbleSort()
            {
                int temp;
                bool exchange;//交换标识
                for (int i = 1; i < intArray.Length; i++)
                {
                    //最多做n-1趟排序
                    exchange = false; 
                    for (int j = 0; j < intArray.Length - i; j++)
                    {
                        if (intArray[j] > intArray[j + 1])
                        {
                            temp = intArray[j + 1];
                            intArray[j + 1] = intArray[j];
                            intArray[j] = temp;
                            exchange = true;
                        }
                        if (!exchange)
                            return;
                    }
                }
            }
    
            /// <summary>
            /// 选择排序
            /// </summary>
            public void SelectSort()
            {
                int i, j, k, temp;
                for (i = 0; i < intArray.Length; i++)
                {
                    //第i趟排序 从i到intArray.Length-1中选中最小的
                    k = i;
                    for (j = i + 1; j < intArray.Length; j++)
                    {
                        if (intArray[j] < intArray[k])
                            k = j;//目前最小值的位置
                    }
                    if (k != i)
                    {
                        //交换
                        temp = intArray[i];
                        intArray[i] = intArray[k];
                        intArray[k] = temp;
                    }
                }
            }
    
            /// <summary>
            /// 通过排序算法获得最大值
            /// </summary>
            /// <returns></returns>
            public int GetMaxValueBySort()
            {
                InsertSort();
                //BubbleSort();
                //SelectSort();
                return intArray[intArray.Length - 1];
            }

    主函数

            static void Main(string[] args)
            {
                //求最值,平均
                int[] intArray;
                List<int> numList = new List<int>();
                int i=5;
                while (i > 0)
                {
                    Console.WriteLine("请输入1个整数:");
                    int num = Convert.ToInt32(Console.ReadLine());
                    numList.Add(num);
                    i--;
                }
                intArray = numList.ToArray<int>();
                MaxAveMin mam = new MaxAveMin(intArray);
                //int max = mam.GetMaxValue();
                int max = mam.GetMaxValueBySort();
                int min = mam.GetMinValue();
                int ave = mam.GetAverage();
                Console.WriteLine("最大值为{0}", max);
                Console.WriteLine("平均值为{0}", ave);
                Console.WriteLine("最小值为{0}", min);
              }
  • 相关阅读:
    mybatis:SQL拦截器
    eclipse:插件安装总结
    eclpse:安装explorer或eExplorer插件
    Spring Tools4
    nginx+tomcat:动静分离+https
    Tomcat:3DES解密时中文乱码
    wireshark如何抓取localhost包
    nginx: 应用访问默认采用https
    windows :config windows update … 一直处于假死状态
    EHCache:Eelment刷新后,timeToLiveSeconds失效了?
  • 原文地址:https://www.cnblogs.com/YuanSong/p/2711291.html
Copyright © 2011-2022 走看看