Advertisement
YChalk

Full Counting Sort

Mar 14th, 2022
615
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.93 KB | None | 0 0
  1. import java.io.*;
  2. import java.math.*;
  3. import java.security.*;
  4. import java.text.*;
  5. import java.util.*;
  6. import java.util.concurrent.*;
  7. import java.util.function.*;
  8. import java.util.regex.*;
  9. import java.util.stream.*;
  10. import static java.util.stream.Collectors.joining;
  11. import static java.util.stream.Collectors.toList;
  12.  
  13. class Result {
  14.  
  15.     /*
  16.      * Complete the 'countSort' function below.
  17.      *
  18.      * The function accepts 2D_STRING_ARRAY arr as parameter.
  19.      */
  20.  
  21.     public static void countSort(List<List<String>> arr) {
  22.     // Write your code here
  23.     for (int i = 0; i <arr.size()/2; i++){
  24.         arr.get(i).set(1, "-");
  25.     }
  26.    
  27.     StringBuilder sb = new StringBuilder("");
  28.     /*StringBuilder[] sbArray = new StringBuilder[100];
  29.     for(int i=0;i<100;i++)
  30.     {
  31.         sbArray[i]=new StringBuilder("");
  32.     }*/
  33.    
  34.     LinkedHashMap<String, StringBuilder> sbMap = new LinkedHashMap<>();
  35.     for (int i = 0; i < 100; i++){
  36.         sbMap.put(String.valueOf(i), new StringBuilder(""));
  37.     }
  38.     //Sort using custom comparator
  39.     /*Collections.sort(arr, new IndexComparator());
  40.    
  41.     for (List l : arr){            
  42.         System.out.print(l.get(1) + " ");                              
  43.     }*/  
  44.    
  45.    
  46.    
  47.     //Iterate over all possible index values
  48.     //Convert to String
  49.     //Iterate over arr and match index to String
  50.     /*for (int i = 0; i < 100; i++){
  51.         String s = String.valueOf(i);
  52.         for (int j = 0; j < arr.size(); j++){
  53.             if (arr.get(j).get(0).equals(s)){
  54.                 System.out.print(arr.get(j).get(1));
  55.                 System.out.print(" ");
  56.                 arr.remove(arr.get(j));
  57.                 j--;
  58.             }
  59.         }
  60.     }*/
  61.    
  62.     //Create a List of List<String>
  63.     //Populate List with 100 empty List<String>
  64.     //Convert indecies to int and add String to relevant index
  65.     /*ArrayList<ArrayList<String>> result = new ArrayList<ArrayList<String>>();
  66.     for (int i = 0 ; i < 100; i++){
  67.         result.add(new ArrayList<String>());
  68.     }
  69.    
  70.     for (int i = 0; i < arr.size(); i++ ){
  71.         int index = Integer.valueOf(arr.get(i).get(0).toString());
  72.         String s = i < arr.size()/2 ? "-" : arr.get(i).get(1);
  73.         result.get(index).add(s);
  74.     }*/
  75.    
  76.    
  77.     //Same as above but convert String to "-" before iteration
  78.     /*for (List l : arr){
  79.         result.get(Integer.valueOf(l.get(0).toString())).add(l.get(1).toString());
  80.     }*/
  81.    
  82.    
  83.    
  84.     /*for (ArrayList l : result){
  85.         for (int i = 0; i < l.size(); i++){
  86.             sb.append(l.get(i));
  87.             sb.append(" ");
  88.         }
  89.     }*/
  90.    
  91.    
  92.    
  93.     //Create a List<Integer>
  94.     //Add all indicies to List
  95.     //Sort List into ascending order
  96.     //remove all duplicates from List<Integer>
  97.     //for-each index, iterate over arr and print all matches
  98.     /*List<Integer> numbers = new ArrayList<>();
  99.    
  100.     for (List l : arr){
  101.         numbers.add(Integer.valueOf(l.get(0).toString()));
  102.     }
  103.    
  104.     Collections.sort(numbers);
  105.    
  106.     numbers = numbers.stream().distinct().collect(Collectors.toList());
  107.    
  108.    
  109.     //List <String> result = new ArrayList<>();
  110.    
  111.     for (Integer i : numbers){
  112.         for (List l : arr){
  113.             if (Integer.valueOf(l.get(0).toString()).equals(i)){
  114.                 System.out.print(l.get(1) + " ");
  115.                                
  116.             }
  117.         }
  118.     }*/
  119.    
  120.     /*String s;
  121.    
  122.     for (int i = 0; i < 100; i++){
  123.         s = String.valueOf(i);
  124.         for (int j = 0; j < arr.size(); j++){
  125.             if (arr.get(j).get(0).equals(s)){
  126.                 if (j < arr.size()/2){
  127.                     sb.append("-");
  128.                 } else {
  129.                     sb.append(arr.get(j).get(1));
  130.                 }
  131.                 sb.append(" ");
  132.             }
  133.         }
  134.     }*/
  135.     String index;
  136.     for (int i = 0; i < arr.size(); i++){
  137.        index = arr.get(i).get(0);
  138.         /*if (i < arr.size()/2){
  139.             sbMap.get(index).append("-");
  140.         } else {*/
  141.             sbMap.get(index).append(arr.get(i).get(1));
  142.         //}
  143.         sbMap.get(index).append(" ");
  144.     }
  145.    
  146.     for (Map.Entry<String, StringBuilder> entry : sbMap.entrySet()){
  147.         sb.append(entry.getValue());
  148.     }
  149.    
  150.     System.out.println(sb);
  151.    
  152.     }
  153.    
  154.     /*public static class IndexComparator implements Comparator<List<String>>{
  155.         @Override
  156.         public int compare(List<String> first, List<String> second){
  157.             String firstIndex = first.get(0);
  158.             String secondIndex = second.get(0);
  159.            
  160.             //if (firstIndex.length() != secondIndex.length()){
  161.                 int firstI = Integer.parseInt(firstIndex);
  162.                 int secondI = Integer.parseInt(secondIndex);
  163.                 return Integer.compare(firstI, secondI);
  164.             //}
  165.            
  166.             //return firstIndex.compareTo(secondIndex);
  167.         }
  168.     }*/
  169.  
  170. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement