Advertisement
HeatPulse

lab5-1 Neparno Parno sortiranje

Nov 12th, 2019
612
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.32 KB | None | 0 0
  1. /* Непарно парно сортирање Problem 1 (0 / 0)
  2. Дадена е низа со N природни броеви. Треба да се сортира низата така што во првиот дел од низата ќе бидат подредени непарните броеви од неа во растечки редослед, а во вториот дел парните броеви во опаѓачки редослед. Во првиот ред од влезот даден е бројот на елементи во низата N, а во вториот ред се дадени броевите. На излез треба да се испечати сортираната низа.
  3. Име на класата: OddEvenSort
  4. Sample input:
  5. 34
  6. 90 28 73 65 23 45 31 56 87 34 90 76 35 83 45 76 42 19 11 98 63 28 98 73 28 92 77 1 10 32 21 46 88 100
  7. Sample output:
  8. 1 11 19 21 23 31 35 45 45 63 65 73 73 77 83 87 100 98 98 92 90 90 88 76 76 56 46 42 34 32 28 28 28 10 */
  9.  
  10. import java.io.BufferedReader;
  11. import java.io.IOException;
  12. import java.io.InputStreamReader;
  13.  
  14. public class OddEvenSort {
  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. neparni = ascendingOrder(neparni,o);
  75. parni = descendingOrder(parni,e);
  76. int j=0;
  77. for(int i=0;i<o;i++)
  78. {
  79. a[i]=neparni[i];
  80. }
  81. for(int i=n-e;i<n;i++)
  82. {
  83. a[i]=parni[j];
  84. j++;
  85. }
  86. }
  87.  
  88. public static void main(String[] args) throws IOException{
  89. int i;
  90. BufferedReader stdin = new BufferedReader( new InputStreamReader(System.in));
  91. String s = stdin.readLine();
  92. int n = Integer.parseInt(s);
  93.  
  94. s = stdin.readLine();
  95. String [] pom = s.split(" ");
  96. int [] a = new int[n];
  97. for(i=0;i<n;i++)
  98. a[i]=Integer.parseInt(pom[i]);
  99. oddEvenSort(a,n);
  100. for(i=0;i<n-1;i++)
  101. System.out.print(a[i]+" ");
  102. System.out.print(a[i]);
  103. }
  104. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement