Java: Separate even and odd numbers of a given array of integers
Write a Java program to separate even and odd numbers from a given array of integers. Put all even numbers first, and then odd numbers.
Pictorial Presentation:
Sample Solution:
Java Code:
// Import the necessary Java utility class for working with arrays.
import java.util.Arrays;
// Define the Main class.
public class Main {
public static void main(String[] args)
{
// Create an array of integers.
int nums[] = {20, 12, 23, 17, 7, 8, 10, 2, 1, 0};
int result[];
// Print the original array.
System.out.println("Original Array ");
System.out.println(Arrays.toString(nums));
// Call the separate_odd_even method to separate odd and even numbers.
result = separate_odd_even(nums);
// Print the array after separation.
System.out.print("Array after separation ");
System.out.println(Arrays.toString(result));
}
// A method to separate odd and even numbers in an array.
static int[] separate_odd_even(int arr[])
{
// Initialize left and right pointers.
int left_side = 0, right_side = arr.length - 1;
// Continue until the left pointer is less than the right pointer.
while (left_side < right_side)
{
// Move the left pointer to the right until it points to an odd number.
while (arr[left_side] % 2 == 0 && left_side < right_side)
left_side++;
// Move the right pointer to the left until it points to an even number.
while (arr[right_side] % 2 == 1 && left_side < right_side)
right_side--;
// If the left pointer is still less than the right pointer, swap the elements.
if (left_side < right_side)
{
int temp = arr[left_side];
arr[left_side] = arr[right_side];
arr[right_side] = temp;
left_side++;
right_side--;
}
}
// Return the modified array.
return arr;
}
}
Sample Output:
Original Array [20, 12, 23, 17, 7, 8, 10, 2, 1, 0] Array after separation [20, 12, 0, 2, 10, 8, 7, 17, 1, 23]
Flowchart:
Java Code Editor:
Previous: Write a Java program to separate 0s on left side and 1s on right side of an array of 0s and 1s in random order.
Next: Write a Java program to replace every element with the next greatest element (from right side) in a given array of integers.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics