Write a program to store 15 numbers in an array. Then display all negative numbers in ascending order using bubble sorting.
import java.util.InputMismatchException;
import java.util.Scanner;
public class Main {
    private static void ascendingBubbleSorting(int[] arr) {
        boolean sorted = false;
        int tmp;
        while (!sorted) {
            sorted = true;
            for (int i = 0; i < arr.length - 1; i++) {
                tmp = arr[i];
                if (tmp > arr[i + 1]) {
                    arr[i] = arr[i + 1];
                    arr[i + 1] = tmp;
                    sorted = false;
                }
            }
        }
    }
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int arr[] = new int[15];
        int negativeCounter = 0;
        System.out.println("Enter " + arr.length + " numbers:");
        for (int i = 0; i < arr.length; i++) {
            while (true) {
                try {
                    arr[i] = input.nextInt();
                    if (arr[i] < 0) negativeCounter++;
                    break;
                } catch (InputMismatchException e) {
                    System.out.println("The entered number is incorrect, please try again...");
                    input.next();
                }
            }
        }
        if (negativeCounter == 0) {
            System.out.println("Negative numbers not found!");
            return;
        }
        int newArr[] = new int[negativeCounter];
        int i2 = 0;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] < 0) {
                newArr[i2] = arr[i];
                i2++;
            }
        }
        ascendingBubbleSorting(newArr);
        System.out.println("Negative numbers in ascending order:");
        for (int i = 0; i < newArr.length; i++) {
            System.out.print(newArr[i] + " ");
        }
        System.out.println();
    }
}
Comments