社区
Java SE
帖子详情
一组数据,单列排列,如何求出它的最小值和次最小值. 求最佳算法.
dxhdxh2k
2010-01-11 02:02:52
一组数据,单列排列,如何求出它的最小值和次最小值. 求最佳算法.
...全文
473
16
打赏
收藏
一组数据,单列排列,如何求出它的最小值和次最小值. 求最佳算法.
一组数据,单列排列,如何求出它的最小值和次最小值. 求最佳算法.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sunnylyy
2010-01-11
打赏
举报
回复
[Quote=引用 14 楼 whut_lcy 的回复:]
啥叫不用这些东西啊?啥叫乱用数据结构啊,数据结构是计算机的根基好不~~
[/Quote]
确实,我们要做的是理解算法和数据结构,然后选择合适的java集合类,没必要完全自己去写。
单纯从算法上讲,还有更好的:用数据结构“堆”,构造一个最大堆,然后弹出两次堆顶就OK了,时间复杂度3*O(logN)
whut_lcy
2010-01-11
打赏
举报
回复
1L的方法,精髓实际是二分法,不是吗
whut_lcy
2010-01-11
打赏
举报
回复
啥叫不用这些东西啊?啥叫乱用数据结构啊,数据结构是计算机的根基好不~~
notlogin
2010-01-11
打赏
举报
回复
[Quote=引用 10 楼 nihuajie05 的回复:]
引用 5 楼 notlogin 的回复:
为什么不排序?
1楼的算法比排序快?
当然1楼的快了。。一楼的只要1次遍历。
就算是冒泡也没1楼的快。冒泡要交换数组元素吧。
[/Quote]
我的意思是,在条件允许的情况下,直接sort数组,然后去第一个和最后一个不就行了?
LZ没说不让用JAVA自己的方法呀
andyan_2008
2010-01-11
打赏
举报
回复
[Quote=引用 1 楼 sunnylyy 的回复:]
不要排序,循环一遍就行
用数组A存储n个数据, max1存储最大值, max2存储次大值
初始: max1=A[0],max2=A[1];如果A[1]>A[0],max1=A[1],max2=A[0]
循环A[i]从A[2]到A[n-1]:
1:如果A[i]>max1,则max2=max1,max1=A[i]
2:如果A[i] <=max1&&A[i]>max2,则max2=A[i],max1不变
3:如果A[i] <max2,则max1,max2不变
[/Quote]
同意
nihuajie05
2010-01-11
打赏
举报
回复
[Quote=引用 9 楼 whut_lcy 的回复:]
童鞋们,java集合框架都丢啦?浪费啊~~~~~~~~
1)如果LZ纯粹研究排序、查找算法的话那就先去研究一下快速排序法,二分法等等常规排序、查找算法
2)如果是为了解决实际问题,那么你还是去用java集合框架吧,何必再造一个轮子?何况你的轮子肯定不是最好的。最好的大师们已经给你做了
[/Quote]
==!
根本不用这些东西好么。。
请不要乱用数据结构
nihuajie05
2010-01-11
打赏
举报
回复
[Quote=引用 5 楼 notlogin 的回复:]
为什么不排序?
1楼的算法比排序快?
[/Quote]
当然1楼的快了。。一楼的只要1次遍历。
就算是冒泡也没1楼的快。冒泡要交换数组元素吧。
whut_lcy
2010-01-11
打赏
举报
回复
童鞋们,java集合框架都丢啦?浪费啊~~~~~~~~
1)如果LZ纯粹研究排序、查找算法的话那就先去研究一下快速排序法,二分法等等常规排序、查找算法
2)如果是为了解决实际问题,那么你还是去用java集合框架吧,何必再造一个轮子?何况你的轮子肯定不是最好的。最好的大师们已经给你做了
yishiwucheng
2010-01-11
打赏
举报
回复
先取数组的头两个数据,比出大小,然后用这两个中大的那个和下一个对比,如果下一个更小,更新,然后在对比更新后的两个数据,再用大的和下一个对比,依次下去
liwenso
2010-01-11
打赏
举报
回复
冒两次泡,将最后两位取出即可。
baby1986
2010-01-11
打赏
举报
回复
冒泡或选择排序执行两轮就能得到最小和次小的数据啊
notlogin
2010-01-11
打赏
举报
回复
为什么不排序?
1楼的算法比排序快?
hbgzg3006
2010-01-11
打赏
举报
回复
莫非数据是放在文件中?如果那样的话,读取出来以String 或者Integer放入TreeSet即可,取第一个为最小,取第二个为次最小。不知道更好的办法有没有。
psyuhen
2010-01-11
打赏
举报
回复
偶不知道你数组里面的数据是什么类型。
若是数字,LS的就可以啦。
若是String,那么自己看着办吧。
potahai
2010-01-11
打赏
举报
回复
[Quote=引用 1 楼 sunnylyy 的回复:]
不要排序,循环一遍就行
用数组A存储n个数据, max1存储最大值, max2存储次大值
初始: max1=A[0],max2=A[1];如果A[1]>A[0],max1=A[1],max2=A[0]
循环A[i]从A[2]到A[n-1]:
1:如果A[i]>max1,则max2=max1,max1=A[i]
2:如果A[i] <=max1&&A[i]>max2,则max2=A[i],max1不变
3:如果A[i] <max2,则max1,max2不变
[/Quote]
正解
sunnylyy
2010-01-11
打赏
举报
回复
不要排序,循环一遍就行
用数组A存储n个数据, max1存储最大值, max2存储次大值
初始: max1=A[0],max2=A[1];如果A[1]>A[0],max1=A[1],max2=A[0]
循环A[i]从A[2]到A[n-1]:
1:如果A[i]>max1,则max2=max1,max1=A[i]
2:如果A[i]<=max1&&A[i]>max2,则max2=A[i],max1不变
3:如果A[i]<max2,则max1,max2不变
算法
大作业:圆的
排列
问题
该博客围绕
算法
大作业中的圆
排列
问题展开。问题是给定n个圆半径序列,将其放于矩形框且与底边相切,
求
最小
排列
长度。解析指出圆间有相离和相切关系,通过
排列
所有情况取
最小值
,采用回溯法遍历顺序更新结果。代码设计部分未详述,时间复杂度为O(n!)。
利用分治法
求
一组
数据
中最大的两个数和最小的两个数_速学!面试常问的
数据
结构十大经典
算法
...
这篇博客介绍了如何利用分治法在排序
算法
中找到
一组
数据
中最大的两个数和最小的两个数。博客详细讲解了冒泡排序、快速排序、插入排序、希尔排序、选择排序、堆排序和归并排序等排序
算法
,重点阐述了它们的时间复杂度和适用场景。
随机化
算法
解决圆
排列
问题 - python解法
探讨使用随机化
算法
解决圆
排列
问题,旨在寻找n个圆的最优
排列
,以实现最小长度的圆
排列
。通过随机
排列
输入
数据
,设计三层循环
算法
,避免阶乘时间复杂度,提高
算法
效率。
(1544): 序列划分(
求
极大值的
最小值
)&(1233): 【基础
算法
】 书的复制
本文通过二分法解决了两个相似的问题:一是
求
序列划分的极大值
最小值
;二是
求
书本复制的
最佳
分配方案。文章提供了详细的代码实现,并强调了在使用二分法时需注意的细节。
2020.6.15刷题
求
1到N的全
排列
组合,
最佳
观光组合1趟遍历,把数字翻译成字符串dp,转变数组后最接近目标值的数组和(排序二分查找),等式方程的可满足性构建并查集,
本文精选了包括全
排列
组合、回文素数、观光组合
最佳
得分、数组和最接近目标值、数字翻译、等式方程可满足性、下一个
排列
、马戏团人塔等在内的多个经典
算法
题目,通过详细解析和代码实现,帮助读者深入理解
算法
设计与应用。
Java SE
62,621
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章