logo Practice-It logo


Language/Type: Java arrays
Author: Marty Stepp

Write a method named partition that accepts an array of integers a and an integer element value v as its parameters, and rearranges ("partitions") the array's elements so that all its elements of a that are less than v occur before all elements that are greater than v. The exact order of the elements is unimportant so long as all elements less than v appear before all elements greater than v. For example, if your method were passed the following array:

int[] a = {15, 1, 6, 12, -3, 4, 8, -7, 21, 2, 30, -1, 9};
partition(a, 5);

One acceptable ordering of the elements after the call would be:

{-1, 1, 2, -7, -3, 4, 8, 12, 21, 6, 30, 15, 9}

Hint: Your method will need to rearrange the elements of the array, which will involve swapping various elements from less desirable indexes to more desirable ones.

You may assume that the array contains no duplicates and does not contain the element value v itself. You may not use Arrays.sort, Collections.sort, or any other pre-defined sorting algorithm from the Java Class Libraries or textbook to solve this problem. You also may not use a String to solve this problem.

Type your solution here:

This is a method problem. Write a Java method as described. Do not write a complete program or class; just the method(s) above.

You must log in before you can solve this problem.

Log In

If you do not understand how to solve a problem or why your solution doesn't work, please contact your TA or instructor.
If something seems wrong with the site (errors, slow performance, incorrect problems/tests, etc.), please

Is there a problem? Contact a site administrator.