• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#算法最值/平均

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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

/// <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);
          }

 

 

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
From C# to VB发布时间:2022-07-10
下一篇:
C#中重写、重载和隐藏的概念发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap