Пусть A будет массивом с n элементами. A не сортируется, тем не менее после сортировки массива разница между любыми двумя соседними элементами будет либо k 1 , k 2 , либо k 3 .
Следует отметить, что k 1 , k 2 и k 3 не указаны, и все они натуральные!
Например, с учетом массива:
A = { 25, 7, 5, 9, 32, 23, 14, 21}
После сортировки массива мы получим -
A = { 5, 7, 9, 14, 21, 23, 25, 32}
Разница между первой парой (5, 7) составляет 2; поэтому k 1 = 2, разница между третьей парой (9,14) составляет 5, поэтому k 2 = 5, тогда как разница между четвертой парой (14, 21) равна 7, поэтому k 3 = 7. Разница между соседними парами также составляет 2, 5 и 7.
Алгоритм сортировки массива должен быть как можно лучше (очевидно, ниже O (nlogn) ).
Мне удалось ответить на аналогичный вопрос, где разница между любыми двумя соседними элементами составляла k, 2k или 3k , где k - реальное. Но я не смог найти подходящий алгоритм, следуя аналогичному методу, найдя k , разделив его и выполнив сортировку сегментов.