找出数组中第二大数
2017-03-16 17:01
302 查看
有一个int类型的数组,如何找出里面第二大的数,同时算法的时间复杂度是多少?
遍历解法:
思路:第一轮遍历找出第一大MAX,第二轮遍历找出第二大MAX2。
冒泡解法:
思路:第一轮倒序冒泡将最大数沉到最左,第二轮将次大数沉到次左。
遍历解法:
思路:第一轮遍历找出第一大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])
相关文章推荐
- 分治法找出数组中第二大数
- 找出一个整数数组中的第二大数
- 快速找出一个数组中的最大数、第二大数。
- 找出整数数组中第二大数
- 快速找出数组中的最大数和第二大数
- 找出数组中第二大数
- [基础题]1.快速找出一个数组中的最大数、第二大数。
- Linux_C练习:快速找出一个数组中的最大数、第二大数。(笔试题)
- 如何快速找出一个数组中最大数和第二大数
- 快速找出一个数组中的最大数和第二大数
- 一次遍历找出整型数组中第二大数
- 写一个函数,找出一个整数数组中的第二大数
- C++通过自定义函数找出一个整数数组中第二大数的方法
- 面试题1: 给定一个数组, 里面是一些数字, 请只用一个for循环, 找出其中第二大的数字.
- C++面试题之写一个函数找出一个整数数组中,第二大的数
- 给定一个长度为N的数组,找出一个最长的单调自增子序列(不一定连续,但是顺序不能乱). 第二解
- 随机为一维数组赋值,找出其中的第二大值
- 快速从数组中找出最大数和第二大的数
- 笔试题---找出一数组中第二大的值
- C语言求数组的第二大数