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;
            }
  • 相关阅读:
    springboot之mybatis别名的设置
    webstorm
    万字长文把 VSCode 打造成 C++ 开发利器
    残差residual VS 误差 error
    参数与非参数的机器学习算法
    阿里云产品梳理
    aws产品整理
    Azure产品整理
    OpenStack产品摘要
    头条、美团、滴滴、阿里、腾讯、百度、华为、京东职级体系及对应薪酬
  • 原文地址:https://www.cnblogs.com/myhappylife/p/3195566.html
Copyright © 2011-2022 走看看