Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

this is java problem SORTED so you have arraylist ArrayList<Integer> numbers = {

ID: 3910613 • Letter: T

Question

this is java problem SORTED

so you have arraylist

ArrayList<Integer> numbers = {-15,-10,-20,-2,0,10,2,3,4,5}

this list are not sorted we need to make it sorted using two method

first medthod call ifNegative the method parameter with numbers but

need to take only negative number and order it from the biggest number to smallest for example in this case.

-2, -10, -15, -20

sercond medthod is ifPositive the method with parameter numbers but

need to take only positive number and need to order it from smallest to biggest (normal ordering)

in this case 0,2,3,4,5,10

and in the end they need to be order as is in the arraylist that we have so this special sort should be

-2, -10, -15, -20,0 ,2, 3, 4, 5, 10

Explanation / Answer

Here is the completed code for this problem. I have not used Collections.sort() in case if it is not allowed. Used simple bubble sort. Comments are included, go through it, learn how things work and let me know if you have any doubts. Thanks.

// Sort.java

import java.util.ArrayList;

import java.util.Arrays;

public class Sort {

                /**

                * method to sort only negative numbers in an array list from biggest to

                * smallest, and arrange all positive numbers to the other side

                */

                static void ifNegative(ArrayList<Integer> numbers) {

                                int size = numbers.size();

                                ArrayList<Integer> negativeNumbers = new ArrayList<Integer>();

                                ArrayList<Integer> numbersToRemove = new ArrayList<Integer>();

                                // looping through all elements

                                for (int i = 0; i < size; i++) {

                                                // if the number is negative, adding to the negativeNumbers

                                                // list and numbers to be removed list

                                                if (numbers.get(i) < 0) {

                                                                int num = numbers.get(i);

                                                                negativeNumbers.add(num);

                                                                numbersToRemove.add(num);

                                                }

                                }

                                // removing negative numbers from the list

                                numbers.removeAll(numbersToRemove);

                                /**

                                * by now, all negative numbers will be arranged on negative numbers

                                * list, so we need to sort it

                                */

                                for (int i = 0; i < negativeNumbers.size(); i++) {

                                                for (int j = 0; j < negativeNumbers.size() - 1; j++) {

                                                                if (negativeNumbers.get(j) < negativeNumbers.get(j + 1)) {

                                                                                // swapping elements

                                                                                int temp = negativeNumbers.get(j);

                                                                                negativeNumbers.set(j, negativeNumbers.get(j + 1));

                                                                                negativeNumbers.set(j + 1, temp);

                                                                }

                                                }

                                }

                                // adding sorted negative numbers to the original list

                                numbers.addAll(negativeNumbers);

                }

                /**

                * method to sort only positive numbers in an array list from smallest to

                * biggest, and arrange all positive numbers to the other side

                */

                static void ifPositive(ArrayList<Integer> numbers) {

                                int size = numbers.size();

                                ArrayList<Integer> positiveNumbers = new ArrayList<Integer>();

                                ArrayList<Integer> numbersToRemove = new ArrayList<Integer>();

                                // looping through all elements

                                for (int i = 0; i < size; i++) {

                                                // if the number is positive, adding to the positive

                                                // numbers list and numbers to be removed list

                                                if (numbers.get(i) >= 0) {

                                                                int num = numbers.get(i);

                                                                positiveNumbers.add(num);

                                                                numbersToRemove.add(num);

                                                }

                                }

                                // removing positive numbers from the list

                                numbers.removeAll(numbersToRemove);

                                /**

                                * by now, all positive numbers will be arranged on positive numbers

                                * list, so we need to sort it

                                */

                                for (int i = 0; i < positiveNumbers.size(); i++) {

                                                for (int j = 0; j < positiveNumbers.size() - 1; j++) {

                                                                if (positiveNumbers.get(j) > positiveNumbers.get(j + 1)) {

                                                                                // swapping elements

                                                                                int temp = positiveNumbers.get(j);

                                                                                positiveNumbers.set(j, positiveNumbers.get(j + 1));

                                                                                positiveNumbers.set(j + 1, temp);

                                                                }

                                                }

                                }

                                // adding sorted positive numbers to the original list

                                numbers.addAll(positiveNumbers);

                }

                public static void main(String[] args) {

                                // defining an array list of numbers

                                ArrayList<Integer> numbers = new ArrayList<Integer>(Arrays.asList(-15,-10,-20,-2,0,10,2,3,4,5));

                                System.out.println("Original list: "

                                                                + Arrays.toString(numbers.toArray()));

                                ifNegative(numbers);

                                ifPositive(numbers);

                                System.out.println("After calling ifNegative() and ifPositive(): "

                                                                + Arrays.toString(numbers.toArray()));

                }

}

/*OUTPUT*/

Original list: [-15, -10, -20, -2, 0, 10, 2, 3, 4, 5]

After calling ifNegative() and ifPositive(): [-2, -10, -15, -20, 0, 2, 3, 4, 5, 10]