算法:一个有序数组(从小到大排列),数组中的数据有正有负,求这个数组中的最小绝对值

一个简单的思路,就是一次性遍历数组,求出数组的元素的绝对值的最小值,这样的时间复杂度为O(n)。但是,这样就浪费了题目的一个条件:数组是已经排好序的。所以,需要对原来的题... 一个简单的思路,就是一次性遍历数组,求出数组的元素的绝对值的最小值,这样的时间复杂度为O(n)。但是,这样就浪费了题目的一个条件:数组是已经排好序的。所以,需要对原来的题目进行转换。考虑到数组有序,则元素绝对值的最小值为数组中最大负数的绝对值与最小非负数的绝对值的最小值。于是,题目事实上是去查找原数组中负数集合中的最大值。(为什么就不是非负数集合中的最小值呢?怎么判断出来一定是负数的?) 展开
 我来答
dameng198611
2013-11-25 · TA获得超过2688个赞
知道小有建树答主
回答量:623
采纳率:100%
帮助的人:494万
展开全部
二分查找啊。中间的数如果是正数,就往前找,反之往后找。O(logn)

“题目事实上是去查找原数组中负数集合中的最大值”,因为找到这个最大复数,右边的数自然是最小正数啦
章氏SaiKouDa
2013-11-21 · TA获得超过212个赞
知道小有建树答主
回答量:340
采纳率:0%
帮助的人:211万
展开全部
负数最大,整数最小才对啊。
倒着来也一样。得从中间来。用2分法就可以了。
追问
对啊,但是这里却说只要负数的最大,那正数的最小怎么就不要了呢?
追答
莫较真。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
来自浏河岛有冲劲的擎天柱
2013-11-21
知道答主
回答量:1
采纳率:0%
帮助的人:1440
展开全部
首尾两个做标准条件left,right.找个基准值(建议选中间值)p。类似快速排序 不过只拍一次就好了 最后(p == left && p == right)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式