у меня есть этот Algo и я хочу знать, если это возможно, чтобы сделать его лучше (меньше сложности):Как сделать лучший алгоритм с учетом этого кода?
for i = 3 to A.length
for j = 2 to i − 1
for k = 1 to j − 1
if |A[i] − A[j]| = = |A[j] − A[k]| or |A[i] − A[k]| = = |A[j] − A[k]|
return true
return false
Сложность должна быть O (N^3), и приговор после того, как «или» является просто A [я] = A [J]
Я не уверен, что может существовать лучший алгоритм ...
Для чего этот алгоритм? Что оно делает? – EvilTak
Вы пытаетесь определить, содержит ли массив тройку, состоящую из двух точек вместе со своей серединой? –
Кроме того, ваше утверждение о том, что «предложение после» или «просто A [i] = A [j]» мало смысла, поскольку '| A [i] - A [k] | = = | A [j] - A [k] | 'не эквивалентен' A [i] == A [j] ' –