w3resource

Java: Partition an given array of integers into even number first and odd number second

Java Basic: Exercise-176 with Solution

Write a Java program that partitions an array of integers into even and odd numbers.

Original array: [7, 2, 4, 1, 3, 5, 6, 8, 2, 10]
After partition the said array becomes: [10, 2, 4, 2, 8, 6, 5, 3, 1, 7]

Visual Presentation:

Java Basic Exercises: Partition an given array of integers into even number first and odd number second.

Sample Solution:

Java Code:

// Importing necessary Java utilities
import java.util.*;

// Main class Solution
public class Solution {  
	
    // Main method
    public static void main(String[] args) {
		int[] nums = {7, 2, 4, 1, 3, 5, 6, 8, 2, 10};
		
		// Printing the original array
		System.out.println("Original array: " + Arrays.toString(nums));
		
     	// Calling the partitionArray2 method to partition the array
        int[] result = partitionArray2(nums);
        
        // Printing the resulting array after partitioning
        System.out.println("After partition the said array becomes: " + Arrays.toString(result));
    }

    // Method to partition the array based on odd and even numbers
    public static int[] partitionArray2(int[] nums) {
        int i = 0; // Initializing pointer i to the start of the array
        int j = nums.length - 1; // Initializing pointer j to the end of the array
        
        // Looping until pointers i and j meet or cross each other
        while (i < j) {
            // Moving pointer i until it finds an odd number
            while (nums[i] % 2 == 0) {
                i++;
            }
            
            // Moving pointer j until it finds an even number
            while (nums[j] % 2 != 0) {
                j--;
            }
            
            // Swapping the odd and even numbers if i is less than j
            if (i < j) {
                int temp = nums[i];
                nums[i] = nums[j];
                nums[j] = temp;
            }
        }
        
		// Returning the partitioned array
		return nums;
    }
} 

Sample Output:

Original array: [7, 2, 4, 1, 3, 5, 6, 8, 2, 10]
After partition the said array becomes: [10, 2, 4, 2, 8, 6, 5, 3, 1, 7]

Flowchart:

Flowchart: Java exercises: Partition an given array of integers into even number first and odd number second.

Java Code Editor:

Contribute your code and comments through Disqus.

Previous: Write a Java program to delete a specified node in the middle of a singly linked list.
Next: Write a Java program to get a new binary tree with same structure and same value of a given binary tree.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.