Advertisement
deced

Untitled

Nov 8th, 2020
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.10 KB | None | 0 0
  1. package com.company;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Arrays;
  5.  
  6. public class Main {
  7.  
  8.     public static void printPreSorted(ArrayList<ArrayList<Integer>> toPrint) {
  9.         System.out.println();
  10.         for (int i = 0; i < toPrint.size(); i++) {
  11.             System.out.print(Arrays.toString(toPrint.get(i).toArray()));
  12.         }
  13.     }
  14.  
  15.     public static int[] mergeSort(int[] toSort) {
  16.         ArrayList<ArrayList<Integer>> listOfParts = new ArrayList<>();
  17.         ArrayList<Integer> part = new ArrayList<>();
  18.         for (int i = 0; i < toSort.length; i++) {
  19.             if (part.size() == 0 || part.get(part.size() - 1) < toSort[i]) {
  20.                 part.add(toSort[i]);
  21.             } else {
  22.                 listOfParts.add(part);
  23.                 part = new ArrayList<>();
  24.                 part.add(toSort[i]);
  25.             }
  26.         }
  27.         listOfParts.add(part);
  28.         while (listOfParts.size() > 1) {
  29.             printPreSorted(listOfParts);
  30.             ArrayList<Integer> newPart = new ArrayList<>();
  31.             int newPartLength = listOfParts.get(0).size() + listOfParts.get(1).size();
  32.             for (int i = 0; i < newPartLength; i++) {
  33.                 if (listOfParts.get(1).size() == 0 || (listOfParts.get(0).size() > 0 && listOfParts.get(0).get(0) < listOfParts.get(1).get(0))) {
  34.                     newPart.add(listOfParts.get(0).get(0));
  35.                     listOfParts.get(0).remove(0);
  36.                 } else {
  37.                     newPart.add(listOfParts.get(1).get(0));
  38.                     listOfParts.get(1).remove(0);
  39.                 }
  40.             }
  41.             listOfParts.remove(0);
  42.             listOfParts.set(0, newPart);
  43.         }
  44.         printPreSorted(listOfParts);
  45.         int[] sortedArray = new int[listOfParts.get(0).size()];
  46.         for (int i = 0; i < listOfParts.get(0).size(); i++) {
  47.             sortedArray[i] = listOfParts.get(0).get(i);
  48.         }
  49.         return sortedArray;
  50.     }
  51.  
  52.     public static void main(String[] args) {
  53.         int[] a = new int[]{4, 3, 5335, 87, 23, 464, 78965, 32, 311, 5, 35, 5, 1};
  54.         a = mergeSort(a);
  55.     }
  56.  
  57. }
  58.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement