社区
Java SE
帖子详情
一组数据,单列排列,如何求出它的最小值和次最小值. 求最佳算法.
dxhdxh2k
2010-01-11 02:02:52
一组数据,单列排列,如何求出它的最小值和次最小值. 求最佳算法.
...全文
474
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个圆的半径序列,将它们放到矩形框中,各圆与矩形底边相切,
求
具有最小
排列
长度的圆
排列
。 解析 对于每个圆来说,与前面一个圆有两种位置关系,相离和相切,两个相切的圆之间的距离为srqt((r1+r2)^2 - (r1-r2)^2),即2sqrt(r1*r2); 对于与前一个圆相离的圆来说需要算和前面i-1个圆相切时的长度,然后取最大值即可。 要得到圆的
排列
长度需要知道最后一个圆的很坐标x,加上第一个圆的半径和最后一个圆的半径; 通过
排列
出所有的情况,取
最小值
就可以得出最小排序。 用回溯的方法,
利用分治法
求
一组
数据
中最大的两个数和最小的两个数_速学!面试常问的
数据
结构十大经典
算法
...
一、
算法
的分类二、术语说明稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面;不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面;内排序:所有排序操作都在内存中完成;外排序:由于
数据
太大,因此把
数据
放在磁盘中,而排序通过磁盘和内存的
数据
传输才能进行;时间复杂度: 一个
算法
执行所耗费的时间;空间复杂度:运行完一个程序所需内存的大小;三、时间复杂度四、交换排序1、冒泡排序...
(1544): 序列划分(
求
极大值的
最小值
)&(1233): 【基础
算法
】 书的复制
为什么要把这两道题放到一起写呢?就是因为这两道题很像很像只有输不输出方案的区别~ 不信把两道题目一起放出来!! 问题 B(1544): 序列划分(
求
极大值的
最小值
) 时间限制: 1 Sec 内存限制: 64 MB 题目描述 把一个包含n个正整数的序列划分为m个连续的子序列(子序列不能重叠)。设第i个序列的各数之和为S(i),你的任务是让所有S(i)的极大值尽量小。例如序列1 2 ...
随机化
算法
解决圆
排列
问题 - python解法
问题描述 给定n个大小不等的圆 ,现要将这n个圆排进一个矩形框中,且要
求
各圆与矩形框的底边相切。圆
排列
问题要
求
从n个圆的所有
排列
中找出有最小长度的圆
排列
。例如,当n=3,且所给的3个圆的半径分别为1,1,2时,这3个圆的最小长度的圆
排列
如图所示。其最小长度为 。
算法
设计 设计一个随机化
算法
,对于给定的n个圆,计算n个圆的
最佳
排列
方案,使其长度尽可能小。
数据
输入 由文件input.txt给出输入
数据
。第一行有1个正整数n (1≤n≤20)。接下来的1行有n个数,表示n个圆的半径。 解题思路 随机化
算法
2020.6.15刷题
求
1到N的全
排列
组合,
最佳
观光组合1趟遍历,把数字翻译成字符串dp,转变数组后最接近目标值的数组和(排序二分查找),等式方程的可满足性构建并查集,
1.
求
1到N的全
排列
组合 #include "stdio.h" #define N 3 int x[N]; int count = 0; void dump() { int i = 0; for (i = 0; i < N; i++) { printf("%d", x[i]); } printf("\n"); } void swap(int a, int b) { int t = x[a]; x[a] = x[b]; x[
Java SE
62,620
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章