Advertisement
metalni

APS Labs 5 Neparno parno sortiranje

Dec 6th, 2020
1,456
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.05 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4.  
  5. public class OddEvenSort {
  6.  
  7.     static void oddEvenSort(int a[], int n) {
  8.         int evenCount = 0, oddCount = 0;
  9.  
  10.         for(int i=0; i<n; i++){
  11.             if(a[i]%2 == 0)
  12.                 evenCount++;
  13.             else
  14.                 oddCount++;
  15.         }
  16.  
  17.         int even[] = new int[evenCount];
  18.         int odd[] = new int[oddCount];
  19.  
  20.         int evenIndex = 0;
  21.         int oddIndex = 0;
  22.  
  23.         for(int i=0; i<n; i++){
  24.             if(a[i]%2 == 0){
  25.                 even[evenIndex] = a[i];
  26.                 evenIndex++;
  27.             }
  28.             else {
  29.                 odd[oddIndex] = a[i];
  30.                 oddIndex++;
  31.             }
  32.         }
  33.  
  34.         for(int i=0; i<(evenCount-1); i++){
  35.             for(int j=0; j<(evenCount-i-1); j++){
  36.                 if (even[j] < even[j + 1]) {
  37.                     int tmp = even[j];
  38.                     even[j] = even[j + 1];
  39.                     even[j + 1] = tmp;
  40.                 }
  41.             }
  42.         }
  43.  
  44.         for(int i=0; i<(oddCount-1); i++){
  45.             for(int j=0; j<(oddCount-i-1); j++){
  46.                 if (odd[j] > odd[j+1]) {
  47.                     int tmp = odd[j];
  48.                     odd[j] = odd[j+1];
  49.                     odd[j + 1] = tmp;
  50.                 }
  51.             }
  52.         }
  53.  
  54.         for(int i=0; i<oddCount; i++)
  55.             a[i] = odd[i];
  56.  
  57.         for(int i=oddCount, j=0; i<n; i++, j++)
  58.             a[i] = even[j];
  59.     }
  60.  
  61.     public static void main(String[] args) throws IOException{
  62.         int i;
  63.         BufferedReader stdin = new BufferedReader( new InputStreamReader(System.in));
  64.         String s = stdin.readLine();
  65.         int n = Integer.parseInt(s);
  66.  
  67.         s = stdin.readLine();
  68.         String [] pom = s.split(" ");
  69.         int [] a = new int[n];
  70.         for(i=0;i<n;i++)
  71.             a[i]=Integer.parseInt(pom[i]);
  72.         oddEvenSort(a,n);
  73.         for(i=0;i<n-1;i++)
  74.             System.out.print(a[i]+" ");
  75.         System.out.print(a[i]);
  76.     }
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement