zoukankan      html  css  js  c++  java
  • 写一个函数找出一个整数数组中,第二大的数

    刚开始接触这个题的时候,我的脑子快速飞转,但是能想到的是“冒泡排序(由大到小)”,然后取出数组的第二个值。

    但是很多其他的情况还是没有考虑的,

    1、没有第二大值,也就是这一组数字都一样。

    2、第二大值不止一个,

    3、考虑到性能方面,冒泡排序性能太低,循环次数太多。

    中和以上情况,写出如下算法:

         /// <summary>
            /// 找出一个整数数组中,第二大的数
            /// </summary>
            /// <param name="data">整数数组</param>
            /// <param name="count">数组长度</param>
            /// <returns>第二大值</returns>
            public int Find_Sec_Num(int []data,int count)
            {
                  int max_Num=data[0];
                  int sec_Max = -32768;
                  for(int i=0;i<count;i++)
                  {
                      if(data[i]>max_Num)
                      {
                        sec_Max=max_Num;
                        max_Num=data[i];
                      }
                      else if(data[i]>sec_Max)
                      {
                        sec_Max=data[i];
                      }
                  }
                  return sec_Max;
            }
    
            /// <summary>
            /// 返回信息
            /// </summary>
            /// <param name="data">数组</param>
            /// <param name="count">长度</param>
            /// <returns>返回信息</returns>
            public string Get_Info(int []data,int count)
            {
                int secMax = Find_Sec_Num(data, count);
                string returnInfo=null;
                if (secMax == -32768)
                {
                    returnInfo = "第二大值不存在或为-32768";
                }
                else
                {
                    returnInfo = "第二大值为" + secMax;
                }
                return returnInfo;
            }
  • 相关阅读:
    《架构师》反思:系统可靠性
    表现力(转)
    4月反思
    30天敏捷结果(10) 强化你的一周
    认真对待学习(2月反思)
    Sort By Double
    12月反思 组内设计评审会议
    WPF框架的内存泄漏BUG
    OpenExpressApp 框架结构(2)
    绑定子类的泛型基类,反模式?
  • 原文地址:https://www.cnblogs.com/myhappylife/p/3195566.html
Copyright © 2011-2022 走看看