求数组中2个元素的相差值
时间: 2023-08-05 18:04:47 浏览: 45
如果要求一个数组中任意两个元素的差值,可以使用两层循环遍历所有元素组合,并计算它们的差值。具体实现如下:
```python
def find_diff(arr):
n = len(arr)
min_diff = float('inf')
for i in range(n):
for j in range(i+1, n):
diff = abs(arr[i] - arr[j])
if diff < min_diff:
min_diff = diff
return min_diff
```
其中,`float('inf')` 表示正无穷大,用于初始化最小差值。
这个算法的时间复杂度为 $O(n^2)$,不适用于大规模数据。如果需要更快的算法,可以先将数组排序,然后遍历相邻元素之间的差值,这样时间复杂度就可以降到 $O(n\log n)$。具体实现如下:
```python
def find_diff(arr):
arr.sort()
n = len(arr)
min_diff = float('inf')
for i in range(1, n):
diff = arr[i] - arr[i-1]
if diff < min_diff:
min_diff = diff
return min_diff
```
这个算法的思路是先对数组排序,然后遍历相邻元素之间的差值,找到最小的差值即可。