Advertisement
GokulDeep

TroubleSort

Apr 25th, 2024
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.87 KB | None | 0 0
  1. package com.gokul.demo.InProgress;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.IOException;
  5. import java.io.InputStreamReader;
  6. import java.util.ArrayList;
  7. import java.util.List;
  8.  
  9. public class trouble {
  10.     public static void main(String[] args) throws IOException {
  11.  
  12.         BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
  13.  
  14.         // Read the number of test cases
  15.         int testCases = Integer.parseInt(reader.readLine());
  16.         List<int[]> arr = new ArrayList<>();
  17.  
  18.         for (int i = 0; i < testCases; i++) {
  19.             // Read the number of values in the list
  20.             int n = Integer.parseInt(reader.readLine());
  21.  
  22.             // Read the list of values
  23.             String[] line = reader.readLine().split(" ");
  24.             int[] values = new int[n];
  25.             for (int j = 0; j < n; j++) {
  26.                 values[i] = (Integer.parseInt(line[j]));
  27.             }
  28.             arr.add(values);
  29.         }
  30.         int c = 1;
  31.         for (int[] values : arr) {
  32.  
  33.             int firstSortingErrorIndex = checkTroubleSort(values, values.length);
  34.  
  35.             // Output the result
  36.             System.out.println("Case #" + c + ": " + (firstSortingErrorIndex == -1 ? "OK" : firstSortingErrorIndex));
  37.             c++;
  38.         }
  39.     }
  40.  
  41.     public static int checkTroubleSort(int a[], int n) {
  42.         Boolean done = false;
  43.         while (!done) {
  44.             done = true;
  45.             for (int i = 0; i < a.length - 2; i++) {
  46.                 if (a[i] > a[i + 2]) {
  47.                     int temp = a[i];
  48.                     a[i] = a[i + 2];
  49.                     a[i + 2] = temp;
  50.                     done = false;
  51.                 }
  52.             }
  53.  
  54.         }
  55.         for (int i = 0; i < a.length - 1; i++) {
  56.             if (a[i] > a[i + 1]) {
  57.                 return i;
  58.             }
  59.         }
  60.         return -1;
  61.  
  62.     }
  63. }
  64.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement