Ivan18113

Алгоритми - Тема 09

Dec 3rd, 2020
714
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import java.lang.reflect.Array;
  2. import java.util.Arrays;
  3. import java.util.Scanner;
  4.  
  5. import org.apache.commons.lang3.ArrayUtils;
  6. //to work you need to download apache commons
  7. //go to http://commons.apache.org/proper/commons-lang/download_lang.cgi and download commons-lang3-3.11-bin.zip
  8. //then Right click in your project then: Project Properties > Java Build Path > Library > add External JARS
  9. //select commons-logging-1.2.jar and commons-logging-1.2-javadoc.jar from your downloaded unzip commons-logging-1.2-bin.zip
  10.  
  11. public class Tema09 {
  12.  
  13.      public static void main(String[] args) {
  14.             Scanner scan = new Scanner(System.in);
  15.             System.out.print("Enter how many numbers to be sorted: ");
  16.             int n = scan.nextInt();
  17.             int[] arr = new int[n];
  18.             int[] even = new int[arr.length];
  19.             int[] odd = new int[arr.length];
  20.      
  21.             for (int i = 0; i < n; i++) { //inserting numbers into arr
  22.                 System.out.printf("Please input number <%d>: ", i);
  23.                 int number = scan.nextInt();
  24.                 arr[i] += number;
  25.             }
  26.      
  27.      
  28.             for (int i = 0; i < arr.length; i++) { //separating arr into even and odd
  29.                 if (arr[i] % 2 == 0) {
  30.                     even[i] += arr[i];
  31.                 } else {
  32.                     odd[i] += arr[i];
  33.                 }
  34.             }
  35.      
  36.      
  37.             for (int i = 0; i < even.length - 1; i++) { //BubbleSort for even
  38.                 for (int j = 0; j < even.length - i - 1; j++) {
  39.                     if (even[j] > even[j + 1]) {
  40.                         int swap = even[j];
  41.                         even[j] = even[j + 1];
  42.                         even[j + 1] = swap;
  43.                     }
  44.                 }
  45.             }
  46.      
  47.             for (int i = 0; i < even.length; i++) { //removing 0's from even array
  48.                 if (even[i] == 0) {
  49.                     even = ArrayUtils.remove(even, i);
  50.                     i--;
  51.                 }
  52.             }
  53.             System.out.println("Numbers after BubbleSort:");
  54.             System.out.println(Arrays.toString(even)); //printing even(numbers are duplicated if they are repeated)
  55.      
  56.             for (int i = 1; i < odd.length; ++i) { //InsertionSort for odd
  57.                 int test = odd[i];
  58.                 int j = i - 1;
  59.                 while (j >= 0 && odd[j] > test) {
  60.                     odd[j + 1] = odd[j];
  61.                     j = j - 1;
  62.                 }
  63.                 odd[j + 1] = test;
  64.             }
  65.      
  66.             for (int i = 0; i < odd.length; i++) { //removing 0's from odd array
  67.                 if (odd[i] == 0) {
  68.                     odd = ArrayUtils.remove(odd, i);
  69.                     i--;
  70.                 }
  71.             }
  72.             System.out.println("Numbers after InsertionSort:");
  73.             System.out.println(Arrays.toString(odd)); //printing odd(numbers are duplicated if they are repeated)
  74.         }
  75.      
  76.     }
RAW Paste Data