Advertisement
196040

APS labs 5 Neparno parno sortiranje

Dec 11th, 2020
1,013
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.67 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4. public class OddEvenSort {
  5.     static void oddEvenSort(int a[], int n) {
  6.         int nova[] = new int[n];
  7.         int nova2[] = new int[n];
  8.         int k=0;
  9.         int m=0;
  10.         for(int i=0; i<n; i++) {// za neparnite
  11.             if (a[i] % 2 == 1) {
  12.                 nova[k] = a[i];
  13.                 k++;
  14.             }
  15.         }
  16.         for(int i=0; i<n; i++) { // za parnite
  17.             if (a[i] % 2 == 0) {
  18.                 nova2[m] = a[i];
  19.                 m++;
  20.             }
  21.         }
  22.         for(int i=0; i<k-1; i++) {//sort neparnite u nova1 u rastecki redosled
  23.                 for(int j=0; j<k-i-1; j++) {
  24.                     if(nova[j] > nova[j+1]){
  25.                         int tmp = nova[j];
  26.                         nova[j] = nova[j+1];
  27.                         nova[j+1] = tmp;
  28.                     }
  29.                 }
  30.             }
  31.         for(int i=0; i<m-1; i++) {//sort parnite u nova2 u opagacki redosled
  32.             for(int j=0; j<m-i-1; j++) {
  33.                 if(nova2[j] < nova2[j+1]){
  34.                     int tmp = nova2[j];
  35.                     nova2[j] = nova2[j+1];
  36.                     nova2[j+1] = tmp;
  37.                 }
  38.             }
  39.         }
  40.        for(int i=0; i<k; i++) {
  41.            a[i] = nova[i];
  42.        }
  43.        int help=0;
  44.        for(int i=k; i<n; i++) {
  45.            a[i] = nova2[help++];
  46.        }
  47.     }
  48.     public static void main(String[] args) throws IOException{
  49.         int i;
  50.         BufferedReader stdin = new BufferedReader( new InputStreamReader(System.in));
  51.         String s = stdin.readLine();
  52.         int n = Integer.parseInt(s);
  53.  
  54.         s = stdin.readLine();
  55.         String [] pom = s.split(" ");
  56.         int [] a = new int[n];
  57.         for(i=0;i<n;i++)
  58.             a[i]=Integer.parseInt(pom[i]);
  59.         oddEvenSort(a,n);
  60.        for(i=0;i<n-1;i++)
  61.             System.out.print(a[i]+" ");
  62.         System.out.print(a[i]);
  63.     }
  64. }
  65. /*
  66. Дадена е низа со N природни броеви. Треба да се сортира низата така што во
  67. првиот дел од низата ќе бидат подредени непарните броеви од неа во растечки редослед,
  68. а во вториот дел парните броеви во опаѓачки редослед. Во првиот ред од влезот даден е
  69. бројот на елементи во низата N, а во вториот ред се дадени броевите.
  70. На излез треба да се испечати сортираната низа.
  71. Име на класата: OddEvenSort
  72. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement