Найти в Дзене

По возрастанию и по неубыванию. Есть разница?

При сортировке по возрастанию требуется написать алгоритм, который расставит объекты от меньшего значения к большему. В случае сортировки по убыванию, наоборот, от большего к меньшему. Признак может быть любым, зависящим от типа объектов. Для чисел это их значение, для строк - длина, для людей - рост или вес и т. п.

При этом нередко в задачах на сортировку вместо фразы "по возрастанию" используют "по неубыванию", а вместо "по убыванию" - "по невозрастанию"? Есть ли здесь разница или вас просто хотят запутать?

С точки зрения выбора алгоритма сортировки разницы может не быть. Есть она с точки зрения информации, которую вам сообщают о массиве данных.

Если в массиве встречаются одинаковые значения, то после сортировки, скажем, по возрастанию они будут следовать друг за другом. Например:

до сортировки: [5, 5, 8, 2, 1, 5, 9, 8]
после сортировки: [1, 2, 5, 5, 5, 8, 8, 9]

При этом очевидно, что значения в срезах одинаковых элементов не возрастают. Но они точно не убывают! Поэтому формулировку "отсортировать по неубыванию" можно считать лишь способом более точно описать поставленную задачу.

Не следует думать, что когда просят выполнить сортировку именно по возрастанию или по убыванию, указывают на необходимость среди прочего избавиться от элементов, значения которых уже встречаются в массиве, то есть удалить "дубли". Если подобное не оговорено отдельно, вам лишь проще формулируют задачу. Как начинающему.