25 lines
744 B
Ruby
25 lines
744 B
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
# Description: This program reverses array elements by swapping the first half part of the array
|
||
|
# Time Complexity : O(n/2), where n is the array size
|
||
|
# Auxiliary Space : O(1)
|
||
|
module Arrays
|
||
|
def self.reverse_array(arr)
|
||
|
n = arr.length
|
||
|
mid = n / 2
|
||
|
(0...mid).each { |i| arr[i], arr[n - i - 1] = arr[n - i - 1], arr[i] }
|
||
|
arr
|
||
|
end
|
||
|
end
|
||
|
|
||
|
RSpec.describe Arrays do
|
||
|
describe '.reverse_array' do
|
||
|
it 'reverses the elements of an array' do
|
||
|
expect(Arrays.reverse_array([1, 2, 3, 4, 5])).to eq([5, 4, 3, 2, 1])
|
||
|
expect(Arrays.reverse_array([1, 2, 3, 4])).to eq([4, 3, 2, 1])
|
||
|
expect(Arrays.reverse_array([1])).to eq([1])
|
||
|
expect(Arrays.reverse_array([])).to eq([])
|
||
|
end
|
||
|
end
|
||
|
end
|