Array 45. Дан массив размера N. Найти номера двух ближайших элементов из этого массива (то есть элементов с наименьшим модулем разности) и вывести эти номера в порядке возрастания.
Решение на Python 3
import random
N = random.randrange(2,20)
a = [random.randrange(1,100) for i in range(N)]
print("N:",N)
print("Array:\n",a)
d_min = abs(a[0] - a[1])
i_min = 0
j_min = 1
for i in range(0,N-1) :
for j in range(i+1,N) :
#print(i,":",j)
d_tmp = abs(a[i] - a[j])
if d_min > d_tmp :
d_min = d_tmp
i_min = i
j_min = j
print("Indices:", i_min,",",j_min)
print("Elements:", a[i_min],",",a[j_min])
print("Min Diff:", d_min)