Python查找数组第二大数的两种实现方式
本文介绍Python中查找数组第二大数字的两种方法。第一种通过直接排序后取倒数第二个元素实现,代码简洁;第二种采用一次遍历策略,利用两个变量分别记录最大值和次大值,优化了时间复杂度。文章附带完整代码示例及运行结果,适合Python初学者参考学习。
本文详细介绍使用Python查找数组中第二大数字的具体实现方案,供读者参考学习。
题目逻辑直观,具体实现代码如下,关键步骤已在代码注释中详细说明:
#!usr/bin/env python
#encoding:utf-8
'''''
__Author__:沂水寒城
功能:找出数组中第2大的数字
'''
def find_Second_large_num(num_list):
'''''
找出数组中第2大的数字
'''
#直接排序,输出倒数第二个数即可
tmp_list=sorted(num_list)
print 'Second_large_num is:', tmp_list[-2]
#设置两个标志位一个存储最大数一个存储次大数
#two存储次大值,one存储最大值,遍历一次数组即可,先判断是否大于one,若大于将one的
#值给two,将num_list[i]的值给one;否则比较是否大于two,若大于直接将num_list[i]的
#值给two;否则pass
one=num_list[0]
two=num_list[0]
for i in range(1,len(num_list)):
if num_list[i]>one:
two=one
one=num_list[i]
elif num_list[i]>two:
two=num_list[i]
else:
pass
print 'Second_large_num is:', two
if __name__ == '__main__':
num_list=[34,11,23,56,78,0,9,12,3,7,5]
find_Second_large_num(num_list)
运行结果如下所示:
Second_large_num is: 56 Second_large_num is: 56 [Finished in 0.3s]
此外,推荐一款用于演示排序过程的在线工具,供读者进一步理解排序算法:
在线动画演示插入/选择/冒泡/归并/希尔/快速排序算法过程工具: http://tools.jb51.net/aideddesign/paixu_ys
如需了解更多Python相关知识,建议查阅本站相关专题,包括《Python数据结构与算法教程》、《Python加密解密算法与技巧总结》、《Python编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》以及《Python入门与进阶经典教程》。
希望本文提供的解决方案能对您的Python编程实践有所帮助。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









