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])
  • 相关阅读:
    23.2 编写笨的程序
    python面向对象
    面向对象封装
    python新式类删改查
    os模块sys模块 进度条实例
    选课系统练习程序
    python类相关
    xml模块
    json&pickle模块shelve模块
    Python写的ATM程序
  • 原文地址:https://www.cnblogs.com/maoguy/p/6560437.html
Copyright © 2011-2022 走看看