Алгоритмы. Реверс последовательности

preview_player
Показать описание

В этой лекции мы рассмотрим алгоритм реверса последовательности. Этот алгоритм является частым гостем на собеседованиях. Поэтому интересен для рассмотрения. Реализуем этот алгоритм на Python, Java и Fortran.

Рекомендации по теме
Комментарии
Автор

Просмотрено:)

Для тех, кто не может уверенно сказать, откуда такой индекс для обмена endIndex+startIndex-i. Представьте, что в массиве 1.5 тысячи элементов, а вам надо риверсировать индексы только на отрезке [1000..1010]. Чтобы двигаться справа как мы привыкли в простом случае, нам надо из последнего индекса вычитать привычные 0, 1, 2, 3, ... Это достигается нормировкой переменной бегунка i на его начальное значение: i'=i-1000=i-startIndex. Получаем swap(arr[i], arr[endIndex-i']) = swap(arr[i], arr[endIndex-(i-startIndex)] = swap(arr[i], arr[endIndex+startIndex-i]

manOfPlanetEarth