Algorithm 如何获得差异的最小绝对值?
给定一个数组Algorithm 如何获得差异的最小绝对值?,algorithm,math,Algorithm,Math,给定一个数组a[],并执行操作a[i]-x,a[j]+x(x,如果我正确理解您的算法/问题,则在执行a[i]-x,a[j]+x操作期间无需进行任何计算。因此我的建议是: 1) 进行所需数量的a[i]-x,a[j]+x操作 2) 执行以下过程(伪代码): \u aSorted[]=排序(\u a[]) _dif=最大整数值 对于(i=0;i
a[]
,并执行操作a[i]-x,a[j]+x(x,如果我正确理解您的算法/问题,则在执行a[i]-x,a[j]+x操作期间无需进行任何计算。
因此我的建议是:
1) 进行所需数量的a[i]-x,a[j]+x操作
2) 执行以下过程(伪代码):
\u aSorted[]=排序(\u a[])
_dif=最大整数值
对于(i=0;i<_a[]长度-1;i++){
如果(abs(\u aSorted[i]-\u aSorted[i+1])<\u dif)
_dif=abs(_aSorted[i]-_aSorted[i+1]);
}
因此,在此过程之后,dif将保存所需的结果
_aSorted[] = sort(_a[])
_dif = max integer value
for (i=0; i < _a[].length - 1; i++){
if(abs(_aSorted[i]-_aSorted[i+1]) < _dif)
_dif = abs(_aSorted[i] -_aSorted[i+1]);
}