2025年数组:求绝对值最小的数

数组:求绝对值最小的数问题描述 有一个升序排列 的数组 数组中可能有正数 负数 0 求数组中元素的绝对值最小的数 分析 分三种情况 1 如果数组第一个元素为非负数 那么绝对值最小的数肯定为数组的第一个元素 2 如果数组的最后一个元素为负数 那么绝对值最小的数肯定为数组的最后一个元素 3 数组中既有正数又有负数时 首先找到正数与负数的分界点 如果分界点恰好为 0

大家好,我是讯享网,很高兴认识大家。

问题描述:

有一个升序排列的数组,数组中可能有正数,负数,0,求数组中元素的绝对值最小的数。

分析:

分三种情况:

1)如果数组第一个元素为非负数,那么绝对值最小的数肯定为数组的第一个元素。

2)如果数组的最后一个元素为负数,那么绝对值最小的数肯定为数组的最后一个元素。

3)数组中既有正数又有负数时,首先找到正数与负数的分界点,如果分界点恰好为0,那么0就是绝对值最小的数。否则比较分级诶按左右的正数与负数的绝对值来确定最小的数。

查找正数与负数的分界点:

1)顺序遍历数组,找出第一个非负数(前提是数组中既有正数又有负数),接着通过比较分界点两个数的值来找出绝对值最小的数。最坏情况下 的时间复杂度为O(n).

2)二分法查找正数与负数的分界点的方法。取数组中间位置的值为 a[mid] ,


讯享网

a[mid] = 0, a[mid] 为绝对值最小的数

a[mid] > 0 , 如果a[mid-1] <0, 找到分界点,比较 a[mid] 与 a[mid-1] 的绝对值就可以找到数组中绝对值最小的数

如果 a[mid-1] = 0, a[mid-1] 就是要找的数

a[mid-1] > 0, 在数组的左半部分找

a[mid] < 0, 如果 a[mid +1] >0, 找到分界点,比较 a[mid] 与 a[mid + 1] 的绝对值就可以找到数组中绝对值最小的数

如果

小讯
上一篇 2025-02-27 18:10
下一篇 2025-04-07 13:41

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/45055.html