原文:如何找出数组中第二大的数?(一道面试算法题的思考)

前两天面试的过程中问道的一个算法题,题目不算难,但是一步步分析优化的过程我觉得挺受启发,所以拿出来分享一下。 题目要求很简单,就是找出给定数组中第二大的数,略微思考之后我给出了下面的答案,即使用执行两次迭代,使用冒泡排序将两个最大值移动到数组末尾,数组中倒数第二个值即为要求的第二大的值。 时间复杂度为 n,效率还可以,使用数组 , , , , 来测试返回结果也没有问题,但是忽略了一个细节,题目中 ...

2014-03-28 22:45 11 6938 推荐指数:

查看详情

如何找出数组第二大

找到第二大数,具体的形式如下:先定义两个变量:一个变量用来存储数组的最大数,初始值为数组首元素,另一个变 ...

Sun Dec 11 00:03:00 CST 2016 0 5199
找出数组第二大数

有一个int类型的数组,如何找出里面第二大,同时算法的时间复杂度是多少? 遍历解法: 思路:第一轮遍历找出第一大MAX,第二轮遍历找出第二大MAX2。 冒泡解法: 思路:第一轮倒序冒泡将最大数沉到最左,第二轮将次大数沉到次左。 ...

Fri Mar 17 01:01:00 CST 2017 0 1970
python找出数组第二大

#!usr/bin/env python #encoding:utf-8 ''''' __Author__:沂水寒城 功能:找出数组第2大的数字 ''' def ...

Wed Mar 06 20:57:00 CST 2019 0 4028
如何找出一个数组第二大

思路分析: 可以只通过一遍扫描数组即可找出数组第二大,即通过设置两个变量来进行判断。首先定义一个最大变量来存储数组的最大值,初始值为数组首元素;另一个是第二大变量,用来存储数组第二大数,因其一定不能超过数组的最大值,所以初始值可设为最小负整数-32767,然后遍历数组元素。如果数组 ...

Wed Mar 12 19:47:00 CST 2014 2 2930
java快速获取数组第二大

思路:如果当前元素大于最大数 a1,则让第二大数a2等于原来的最大数 a1,再把当前元素的值赋给 a1 ...

Wed May 13 09:03:00 CST 2020 2 2555
寻找数组第二大数

设置两个数值来表示最大数和第二大数,在循环比较赋值即可 测试代码: 运行结果: smax = 4 ...

Thu Jul 11 03:39:00 CST 2019 0 583
c语言经典算法——查找一个整数数组第二大数

题目: 实现一个函数,查找一个整数数组第二大数算法思想: 设置两个变量max1和max2,用来保存最大数和第二大数,然后将数组剩余的依次与这两个数比较,如果这个数a比max1大,则先将max1赋给max2,使原先最大的数成为第二大,再将这个数a赋给max1,如果这个数a比max1小 ...

Sun May 03 22:09:00 CST 2015 0 3881
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM