Advertisement
Guest User

Untitled

a guest
Mar 28th, 2017
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.35 KB | None | 0 0
  1. class test
  2. {
  3. public static void main(String[] args)
  4. {
  5. foititis[] pinakas = new foititis[7];
  6.  
  7. pinakas[0] = new foititis("A Kappa", "A Kappa");
  8. pinakas[0].setAM(5);
  9. pinakas[0].setEtos(2014);
  10. pinakas[1] = new foititis("C Kappa", "C Kappa");
  11. pinakas[1].setAM(2);
  12. pinakas[1].setEtos(2015);
  13. pinakas[2] = new foititis("F Kappa", "F Kappa");
  14. pinakas[2].setAM(8);
  15. pinakas[2].setEtos(2009);
  16. pinakas[3] = new foititis("B Kappa6", "B Kappa");
  17. pinakas[3].setAM(15);
  18. pinakas[3].setEtos(2005);
  19. pinakas[4] = new foititis("D Kappa", "D Kappa");
  20. pinakas[4].setAM(1);
  21. pinakas[4].setEtos(2017);
  22. pinakas[5] = new foititis("E Kappa", "E Kappa");
  23. pinakas[5].setAM(24);
  24. pinakas[5].setEtos(2016);
  25. pinakas[6] = new foititis("G Kappa", "G Kappa");
  26. pinakas[6].setAM(20);
  27. pinakas[6].setEtos(2011);
  28.  
  29. MyUtils.quickSort(pinakas, 0, pinakas.length - 1);
  30.  
  31. for(int i = 0; i < pinakas.length; i++)
  32. {
  33. System.out.println(pinakas[i].getAm());
  34. }
  35. }
  36. }
  37.  
  38. class foititis
  39. {
  40. private String onoma;
  41. private String eponumo;
  42. private int am;
  43. private int etos;
  44.  
  45. foititis(String onoma, String eponumo)
  46. {
  47. this.onoma = onoma;
  48. this.eponumo = eponumo;
  49. }
  50.  
  51. public String getOnoma()
  52. {
  53. return onoma;
  54. }
  55.  
  56. public String getEponumo()
  57. {
  58. return eponumo;
  59. }
  60.  
  61. public int getAm()
  62. {
  63. return am;
  64. }
  65.  
  66. public int getEtos()
  67. {
  68. return etos;
  69. }
  70.  
  71. public void setAM(int am)
  72. {
  73. this.am = am;
  74. }
  75.  
  76. public void setEtos(int etos)
  77. {
  78. this.etos = etos;
  79. }
  80. }
  81.  
  82. class MyUtils
  83. {
  84. public static void swap(foititis[] pinakas, int x, int y)
  85. {
  86. foititis temp = pinakas[x];
  87. pinakas[x] = pinakas[y];
  88. pinakas[y] = temp;
  89. }
  90.  
  91. public static int partition(foititis[] pinakas, int f, int l)
  92. {
  93. int retValue = 0, lowerLimit = f, mid = (f + 1) / 2;
  94.  
  95. swap(pinakas, f, mid);
  96.  
  97. int pivot = pinakas[f].getAm();
  98. f++;
  99.  
  100. while(f < l)
  101. {
  102. while(pinakas[f].getAm() <= pivot && f < l)
  103. {
  104. f++;
  105. }
  106.  
  107. while(pinakas[l].getAm() >= pivot && f <= l)
  108. {
  109. l--;
  110. }
  111.  
  112. if(f < l)
  113. {
  114. swap(pinakas, f, l);
  115. }
  116. }
  117.  
  118. if(pivot > pinakas[f].getAm())
  119. {
  120. swap(pinakas, f, lowerLimit);
  121. retValue = f;
  122. }
  123. else
  124. {
  125. if(pivot >= pinakas[l].getAm())
  126. {
  127. swap(pinakas, l, lowerLimit);
  128. retValue = 1;
  129. }
  130. }
  131.  
  132. return retValue;
  133. }
  134.  
  135. /*public static int partition(foititis[] pinakas, int first, int last)
  136. {
  137. int pivot = pinakas[first].getAm(), low = first + 1, high = last;
  138.  
  139. while(high > low)
  140. {
  141. while (low <= high && pinakas[low].getAm() <= pivot)
  142. {
  143. low++;
  144. }
  145.  
  146. while (low <= high && pinakas[high].getAm() > pivot)
  147. {
  148. high--;
  149. }
  150.  
  151. if(high > low)
  152. {
  153. swap(pinakas, high, low);
  154. }
  155. }
  156.  
  157. while(high > first && pinakas[high].getAm() >= pivot)
  158. {
  159. high--;
  160. }
  161.  
  162. if (pivot > pinakas[high].getAm())
  163. {
  164. swap(pinakas, first, high);
  165.  
  166. return high;
  167. }
  168. else
  169. {
  170. return first;
  171. }
  172. }*/
  173.  
  174.  
  175. public static void quickSort(foititis[] pinakas, int f, int l)
  176. {
  177. //final int MIN = 5;
  178.  
  179. if(/*l - f > 0*/ l > f)
  180. {
  181. /*if(l - f + 1 < MIN)
  182. {
  183. //other sort algo
  184. }
  185. else
  186. {*/
  187.  
  188. int pivotIndex = partition(pinakas, f, l);
  189. quickSort(pinakas, f, pivotIndex - 1);
  190. quickSort(pinakas, pivotIndex + 1, l);
  191. }
  192. }
  193. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement