Advertisement
Guest User

Untitled

a guest
Mar 27th, 2017
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.13 KB | None | 0 0
  1. public class alg2kekolajittelu {
  2.  
  3. private static Random rand = new Random();
  4.  
  5. public static void main(String[] args) {
  6.  
  7. int n = rand.nextInt(20) + 5;
  8. int[]a = new int[n];
  9. a[0] = n - 1;
  10. muodostaTaulukko(a, n);
  11. kekolajittelu(a, a[0]);
  12. a[0] = n - 1;
  13.  
  14. for(int i=0;i<a.length;i++){
  15. System.out.print(a[i] + " ");
  16. }
  17. }
  18.  
  19. private static void kekolajittelu(int[] a, int n) {
  20. teeKeko(a);
  21. for (int i = n; i > 1; i--) {
  22. int apu = a[1];
  23. a[1] = a[i];
  24. a[i] = apu;
  25. a[0]--;
  26. korjaaKeko(a,1);
  27. }
  28. }
  29.  
  30. public static void muodostaTaulukko(int[]a, int n) {
  31. for (int i = 1; i < n - 1; i++) {
  32. int arvottuLuku = rand.nextInt(1000);
  33. a[i] = arvottuLuku;
  34. }
  35. }
  36.  
  37. public static void teeKeko(int[]a) {
  38. for (int i = a[0]/2; i>=1;i--){
  39. korjaaKeko(a,i);
  40. }
  41. }
  42.  
  43. private static void korjaaKeko(int[] a, int i) {
  44. if (2*i > a[0])
  45. return;
  46. int j = 2*i;
  47. int alkio = a[i];
  48. while (j <= a[0]) {
  49. if ((j < a[0]) && (a[j] > a[j+1]))
  50. j = j+1;
  51. if (alkio <= a[j])
  52. break;
  53. a[j/2] = a[j];
  54. j=2*j;
  55. }
  56. a[j/2] = alkio;
  57. }
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement