Reverse an Array
Input: arr[] = {12, 7, 9, 33} Output arr[] = {33, 9, 7, 12}
Input: arr[] = {33, 22, 9, 3, 99} Output: arr[] = {99, 3, 9, 22, 33}
Approach One
package main
import (
"fmt"
)
func main() {
arr := []int{12, 7, 9, 33} // [33 9 7 12]
// arr := []int{33, 22, 9, 3, 99} // [99 3 9 22 33
reserveArray(arr)
fmt.Println(arr)
}
func reserveArray(arr []int) {
low := 0
high := len(arr) - 1
for low < high {
temp := arr[low]
arr[low] = arr[high]
arr[high] = temp
low++
high--
}
}
Time Complexity:: θ(n)
Aux Space: θ(1)
Approach Two
package main
import (
"fmt"
)
func main() {
// arr := []int{12, 7, 9, 33} // [33 9 7 12]
arr := []int{33, 22, 9, 3, 99} // [99 3 9 22 33
reverseArray(arr)
fmt.Println(arr)
}
func reverseArray(arr []int) {
for i := 0; i < len(arr)/2; i++ {
temp := arr[i]
j := len(arr) - i - 1
arr[i] = arr[j]
arr[j] = temp
}
}
Time Complexity:: θ(n)
Aux Space: θ(1)