Alternate elements of an array (original) (raw)

Last Updated : 4 Dec, 2024

Given an array **arr[], the task is to print every **alternate element of the array starting from the first element.

**Examples:

**Input: arr[] = [10, 20, 30, 40, 50]
**Output: 10 30 50
**Explanation: Print the first element (10), skip the second element (20), print the third element (30), skip the fourth element(40) and print the fifth element(50).

**Input: arr[] = [-5, 1, 4, 2, 12]
**Output: -5 4 12

Try It Yourselfredirect icon

Table of Content

**Iterative Approach

The idea is to start iterating from index 0, print the element at that index, and then increment the index by 2 to move to the next alternate element. Keep on printing the elements till we reach the end of the array.

C++ `

// Iterate C++ Program to print alternate elements // of the array

#include #include using namespace std;

vector getAlternates(vector &arr) { vector res;

// Iterate over all alternate elements 
for(int i = 0; i < arr.size(); i += 2) {
    res.push_back(arr[i]);
}
return res;

}

int main() { vector arr = {10, 20, 30, 40, 50}; vector res = getAlternates(arr); for(int x: res) cout << x << " "; }

C

// Iterate C Program to print alternate elements // of the array

#include <stdio.h>

void getAlternates(int arr[], int n) {

// Iterate over all alternate elements
for(int i = 0; i < n; i += 2) {
    printf("%d ", arr[i]);
}

}

int main() { int arr[] = {10, 20, 30, 40, 50}; int size = sizeof(arr) / sizeof(arr[0]); getAlternates(arr, size); return 0; }

Java

// Iterate Java Program to print alternate elements // of the array

import java.util.*;

class GfG { static ArrayList getAlternates(int[] arr) { ArrayList res = new ArrayList<>();

    // Iterate over all alternate elements
    for (int i = 0; i < arr.length; i += 2) {
        res.add(arr[i]);
    }
    return res;
}

public static void main(String[] args) {
    int[] arr = {10, 20, 30, 40, 50};
    ArrayList<Integer> res = getAlternates(arr);
    for (int x : res) {
        System.out.print(x + " ");
    }
}

}

Python

Iterate Python Program to print alternate elements

of the array

def getAlternates(arr): res = []

# Iterate over all alternate elements
for i in range(0, len(arr), 2):
    res.append(arr[i])
return res

if name == "main": arr = [10, 20, 30, 40, 50] res = getAlternates(arr) print(" ".join(map(str, res)))

C#

// Iterate C# Program to print alternate elements // of the array

using System; using System.Collections.Generic;

class GfG { static List getAlternates(int[] arr) { List res = new List();

    // Iterate over all alternate elements
    for (int i = 0; i < arr.Length; i += 2) {
        res.Add(arr[i]);
    }
    return res;
}

static void Main() {
    int[] arr = { 10, 20, 30, 40, 50 };
    List<int> res = getAlternates(arr);
    foreach (int x in res) {
        Console.Write(x + " ");
    }
}

}

JavaScript

// Iterate JavaScript Program to print alternate elements // of the array

function getAlternates(arr) { let res = [];

// Iterate over all alternate elements
for (let i = 0; i < arr.length; i += 2) {
    res.push(arr[i]);
}
return res;

}

// Driver Code const arr = [10, 20, 30, 40, 50]; const res = getAlternates(arr); console.log(res.join(" "));

`

**Time Complexity: O(n), where **n is the number of elements in **arr[].
**Auxiliary Space: O(1)

**Recursive Approach

We can also print the alternate elements using recursion. We start from index = 0, that is the first element of the array and print its value. We then call the recursive function again with the (index + 2) as the current index.

C++ `

// Recursive C++ Program to print alternate elements // of the array

#include #include using namespace std;

// Recursive function to store all alternate elements void getAlternatesRec(vector &arr, int idx, vector& res) { if(idx < arr.size()) { res.push_back(arr[idx]); getAlternatesRec(arr, idx + 2, res); } }

vector getAlternates(vector &arr) { vector res; getAlternatesRec(arr, 0, res); return res; }

int main() { vector arr = {10, 20, 30, 40, 50}; vector res = getAlternates(arr); for(int x: res) cout << x << " "; }

Java

// Recursive Java Program to print alternate elements // of the array

import java.util.ArrayList;

class GfG {

// Recursive function to store all alternate elements
static void getAlternatesRec(int[] arr, int idx, 
                             ArrayList<Integer> res) {
    if (idx < arr.length) {
        res.add(arr[idx]);
        getAlternatesRec(arr, idx + 2, res);
    }
}

static ArrayList<Integer> getAlternates(int[] arr) {
    ArrayList<Integer> res = new ArrayList<>();
    getAlternatesRec(arr, 0, res);
    return res;
}

public static void main(String[] args) {
    int[] arr = {10, 20, 30, 40, 50};
    ArrayList<Integer> res = getAlternates(arr);
    for (int x : res) {
        System.out.print(x + " ");
    }
}

}

Python

Recursive Python Program to print alternate elements

of the array

Recursive function to store all alternate elements

def getAlternatesRec(arr, idx, res): if idx < len(arr): res.append(arr[idx]) getAlternatesRec(arr, idx + 2, res)

def getAlternates(arr): res = [] getAlternatesRec(arr, 0, res) return res

if name == "main": arr = [10, 20, 30, 40, 50] res = getAlternates(arr) print(" ".join(map(str, res)))

C#

// Recursive C# Program to print alternate elements // of the array

using System; using System.Collections.Generic;

class GfG {

// Recursive function to store all alternate elements
static void getAlternatesRec(int[] arr, int idx, 
                                 List<int> res) {
    if (idx < arr.Length) {
        res.Add(arr[idx]);
        getAlternatesRec(arr, idx + 2, res);
    }
}

static List<int> getAlternates(int[] arr) {
    List<int> res = new List<int>();
    getAlternatesRec(arr, 0, res);
    return res;
}

static void Main() {
    int[] arr = { 10, 20, 30, 40, 50 };
    List<int> res = getAlternates(arr);
    foreach (int x in res) {
        Console.Write(x + " ");
    }
}

}

JavaScript

// Recursive JavaScript Program to print alternate // elements of the array

// Recursive function to store all alternate elements function getAlternatesRec(arr, idx, res) { if (idx < arr.length) { res.push(arr[idx]); getAlternatesRec(arr, idx + 2, res); } }

function getAlternates(arr) { let res = []; getAlternatesRec(arr, 0, res); return res; }

// Driver Code let arr = [10, 20, 30, 40, 50]; let res = getAlternates(arr); console.log(res.join(" "));

`

**Time Complexity: O(n), where **n is the number of elements in **arr[].
**Auxiliary Space: O(n), for recursive call stack.