package com.goit.lesson6;

import java.util.Scanner;

/**
 * написать класс, который будет находить минимальное и максимальное значение в массиве
 * сделать сортировку массива по возрастанию и убыванию
 */

public class ArrayMinMaxValue {
    public static void main(String[] args) {
        int[] arrayInputData = inputData();
        int[] arraySortData = sortData(arrayInputData);
        int minValue = min(arrayInputData);
        int maxValue = max(arrayInputData);
        if (arrayInputData.length != 0) {
            System.out.println("\nMIN and MAX value: min=" + minValue + ", " + "max=" + maxValue);
            System.out.print("Sort: ");
            for (int i = 0; i < arraySortData.length; i++) {
                System.out.print(arraySortData[i] + " -> ");
            }
        } else {
            System.out.println("Error: Please enter a number, except for \"0\" or \"1\"");
        }
    }

    public static int[] inputData() {
        Scanner in = new Scanner(System.in);
        System.out.println("Enter the length of the array:");
        int arrayLength = in.nextInt();
        System.out.println("Input " + arrayLength + " numbers");
        int[] array = new int[arrayLength];
        for (int i = 0; i < arrayLength; i++) {
            int inputDataNumber = in.nextInt();
            array[i] = inputDataNumber;
        }
        return array;
    }

    public static int[] sortData(int[] sortArray) {
        for (int i = sortArray.length - 1; i > 0; i--) {
            for (int j = 0; j < i; j++) {
                if (sortArray[j] > sortArray[j + 1]) {
                    int tmp = sortArray[j];
                    sortArray[j] = sortArray[j + 1];
                    sortArray[j + 1] = tmp;
                }
            }
        }
        return sortArray;
    }

    public static int min(int[] arrayMin) {
        int minValue = Integer.MAX_VALUE;
        for (int i = 0; i < arrayMin.length; i++) {
            if (arrayMin[i] < minValue) {
                minValue = arrayMin[i];
            }
        }
        return minValue;
    }

    public static int max(int[] arrayMax) {
        int maxValue = Integer.MIN_VALUE;
        for (int i = 0; i < arrayMax.length; i++) {
            if (arrayMax[i] > maxValue) {
                maxValue = arrayMax[i];
            }
        }
        return maxValue;
    }
}

@@ -366,35 +366,111 @@
 a(arrayInputData
+, true);%0A        int%5B%5D arrayReverseSortData = sortData(arrayInputData, false
 );%0A
-
         int minV
@@ -850,32 +850,222 @@
 ;%0A            %7D%0A
+            System.out.print(%22Sort: %22);%0A            for (int i = 0; i %3C arrayReverseSortData.length; i++) %7B%0A                System.out.print(arrayReverseSortData%5Bi%5D + %22 %3C- %22);%0A            %7D%0A
         %7D else %7B
@@ -1690,16 +1690,36 @@
 ortArray
+, boolean changeSort
 ) %7B%0A    
@@ -1809,24 +1809,62 @@
 %3C i; j++) %7B%0A
+                if (changeSort) %7B%0A    
             
@@ -1902,24 +1902,28 @@
 y%5Bj + 1%5D) %7B%0A
+    
             
@@ -1966,32 +1966,36 @@
                 
+    
 sortArray%5Bj%5D = s
@@ -2023,32 +2023,36 @@
                 
+    
 sortArray%5Bj + 1%5D
@@ -2059,16 +2059,297 @@
  = tmp;%0A
+                    %7D%0A                %7D else %7B%0A                    if (sortArray%5Bj%5D %3C sortArray%5Bj + 1%5D) %7B%0A                        int tmp = sortArray%5Bj%5D;%0A                        sortArray%5Bj%5D = sortArray%5Bj + 1%5D;%0A                        sortArray%5Bj + 1%5D = tmp;%0A                    %7D%0A
         

add bubble reverse sort