Advertisement
Stamenco

АПС - Непарно парно сортирање

Dec 4th, 2020
924
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.03 KB | None | 0 0
  1. /* Непарно парно сортирање
  2.  
  3. Дадена е низа со N природни броеви. Треба да се сортира низата така што во првиот дел од низата ќе бидат подредени непарните броеви од неа во растечки редослед, а во вториот дел парните броеви во опаѓачки редослед. Во првиот ред од влезот даден е бројот на елементи во низата N, а во вториот ред се дадени броевите. На излез треба да се испечати сортираната низа.
  4.  
  5. Име на класата: OddEvenSort
  6.  
  7. */
  8.  
  9. import java.io.BufferedReader;
  10. import java.io.IOException;
  11. import java.io.InputStreamReader;
  12.  
  13. public class OddEvenSort {
  14.  
  15.     static int[] ascendingOrder(int[] neparni, int o)
  16.     {
  17.         int tmp;
  18.         for(int i=0;i<o;i++)
  19.         {
  20.             for(int j=1;j<o-i;j++)
  21.             {
  22.                 if(neparni[j-1]>neparni[j])
  23.                 {
  24.                     tmp=neparni[j-1];
  25.                     neparni[j-1]=neparni[j];
  26.                     neparni[j]=tmp;
  27.                 }
  28.             }
  29.         }
  30.         return neparni;
  31.     }
  32.     static int[] descendingOrder(int[] parni, int e)
  33.     {
  34.         int tmp;
  35.         for(int i=0;i<e;i++)
  36.         {
  37.             for(int j=0;j<e-i-1;j++)
  38.             {
  39.                 if(parni[j]<parni[j+1])
  40.                 {
  41.                     tmp=parni[j];
  42.                     parni[j]=parni[j+1];
  43.                     parni[j+1]=tmp;
  44.                 }
  45.             }
  46.         }
  47.         return parni;
  48.     }
  49.     static void oddEvenSort(int a[], int n)
  50.     {
  51.         int e=0,o=0;
  52.         for(int i=0;i<n;i++)
  53.         {
  54.             if(a[i]%2==0) e++;
  55.             else o++;
  56.         }
  57.         int[] parni=new int[e];
  58.         int[] neparni=new int[o];
  59.  
  60.         e=0; o=0;
  61.         for(int i=0;i<n;i++)
  62.         {
  63.             if(a[i]%2==0)
  64.             {
  65.                 parni[e]=a[i];
  66.                 e++;
  67.             }
  68.             else
  69.             {
  70.                 neparni[o]=a[i];
  71.                 o++;
  72.             }
  73.         }
  74.         ascendingOrder(neparni, o);
  75.         descendingOrder(parni, e);
  76.         int j=0;
  77.         if (o >= 0) System.arraycopy(neparni, 0, a, 0, o);
  78.         for(int i=n-e;i<n;i++)
  79.         {
  80.             a[i]=parni[j];
  81.             j++;
  82.         }
  83.     }
  84.    
  85.     public static void main(String[] args) throws IOException{
  86.         int i;
  87.         BufferedReader stdin = new BufferedReader( new InputStreamReader(System.in));
  88.         String s = stdin.readLine();
  89.         int n = Integer.parseInt(s);
  90.  
  91.         s = stdin.readLine();
  92.         String [] pom = s.split(" ");
  93.         int [] a = new int[n];
  94.         for(i=0;i<n;i++)
  95.             a[i]=Integer.parseInt(pom[i]);
  96.         oddEvenSort(a,n);
  97.         for(i=0;i<n-1;i++)
  98.             System.out.print(a[i]+" ");
  99.         System.out.print(a[i]);
  100.     }
  101. }
  102.  
  103.  
  104.  
  105.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement