У меня есть массив 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
Я думаю, что вы можете ответить на свой вопрос, тестируя этот код. – Blender
Помимо этого: трудно сказать (и форматирование было отредактировано с тех пор), но ваш отступ выглядит странным для меня, и это иногда является признаком смешанных вкладок и пробелов в оригинале. Возможно, вы захотите запустить свой код с помощью 'python -tt your_program_name.py', чтобы проверить на наличие непоследовательных пробелов на всякий случай. – DSM
@ У вас есть мысли о правильности алгоритма? – user2205925