У меня есть массив A=[a1,a2,a3,a4,a5...] и я хочу найти два элемента массива, скажем, A[i] и A[j] такие, что i меньше j и A [j]-A[i] минимально.
Будет ли этот код выполнять эту работу:
def findMinDifference(A):
Unsorted=[]
minDiff=1000000
Unsorted=A
Sorted=quickSort(A)
for i in range(0,len(Sorted)):
if i>=1:
SmallElement=Sorted[i-1]
indexOfSmaller=Unsorted.index(SmallElement)
BigElement=Sorted[i]
indexOfBig=Unsorted.index(BigElement)
if indexOfSmaller<inexOfBig:
diff=Sorted[i]-Sorted[i-1]
if diff<minDiff:
minDiff=diff
return minDiff
python -tt your_program_name.py
, чтобы проверить наличие несовместимых пробелов. - person DSM   schedule 25.03.2013minDif = float('inf')
. Проверка.index()
имеет стоимость O(N), поэтому ваш алгоритм будет очень медленным для больших списков. O(n^2) Я верю. - person jamylak   schedule 25.03.2013