zoukankan      html  css  js  c++  java
  • 找出数组中第二大数

    有一个int类型的数组,如何找出里面第二大的数,同时算法的时间复杂度是多少?

    遍历解法:

    思路:第一轮遍历找出第一大MAX,第二轮遍历找出第二大MAX2。

     1 #_*_coding:utf-8_*_
     2 
     3 intArray = [1 , 5 , 6 , 4 , 9 , 8]
     4 
     5 MAX = intArray[0] ;
     6 for i in intArray :
     7     if i > MAX :
     8         MAX = i ;
     9 MAX2 = intArray[0] ;
    10 for i in intArray :
    11     if (i > MAX2 and i != MAX) :
    12         MAX2 = i ;
    13 
    14 print (MAX2) ;

    冒泡解法:

    思路:第一轮倒序冒泡将最大数沉到最左,第二轮将次大数沉到次左。

     1 #_*_coding:utf-8_*_
     2 
     3 intArray = [1 , 5 , 6 , 4 , 9 , 8]
     4 
     5 for i in range (len(intArray)-1) :
     6     if (intArray[len(intArray)-i-1] > intArray[len(intArray)-i-2]) :
     7         a = intArray[len(intArray)-i-1] ;
     8         intArray[len(intArray)-i-1] = intArray[len(intArray)-i-2] ;
     9         intArray[len(intArray)-i-2] = a ;
    10 
    11 for i in range (len(intArray)-1) :
    12     if (intArray[len(intArray)-i-1] > intArray[len(intArray)-i-2]) :
    13         a = intArray[len(intArray)-i-1] ;
    14         intArray[len(intArray)-i-1] = intArray[len(intArray)-i-2] ;
    15         intArray[len(intArray)-i-2] = a ;
    16 
    17 print (intArray[1])
  • 相关阅读:
    G D 3 2 预 处 理 符 号 配 置 中 定 义
    指针接收函数
    SMT(SF)
    电流高端采样问题
    简单分析一个采集交流电压平均值的电路
    i--和--i的区别
    结构体共用体的使用
    .net Filter 和 代理模式杂谈
    Spring boot 日志 Logback
    spring boot 使用 mongodb
  • 原文地址:https://www.cnblogs.com/maoguy/p/6560437.html
Copyright © 2011-2022 走看看