morry2341

mergesort vorlesung 19.04

Apr 19th, 2023
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.75 KB | None | 0 0
  1.  
  2. public static int[] mergeSort(int[] f){
  3. if(f.length == 1){
  4. return Arrays.copyOf(f, f.length);
  5. }
  6.  
  7. int mitte = f.length/2;
  8. int[] f1 = mergeSort(Arrays.copyOfRange(f, 0, mitte));
  9. int[] f2 = mergeSort(Arrays.copyOfRange(f,mitte,f.length));
  10. merge(f1,f2);
  11. }
  12.  
  13. private static int[] merge(int[] f1, int[] f2){
  14. int[] f = new int[f1.length + f2.length];
  15. int i = 0;
  16. int j = 0;
  17. int x = 0;
  18.  
  19. while(i < f1.length && j < f2.length){
  20. f[x++] = (f1[i] < f2[j]) ? f1[i++] : f2[j++];
  21.  
  22. //Prüfung
  23. if(f1[i] < f2[j]){
  24. f[x] = f1[i];
  25. ++i;
  26. } else {
  27. f[x] = f2[j];
  28. ++j;
  29. }
  30.  
  31. for(; i < f1.length; ++i){
  32. f[x++] = f1[i];
  33. }
  34.  
  35. for(; j < f2.length; ++j) f[x++] = f2[j];
  36.  
  37. return f;
  38. }
  39.  
Advertisement
Add Comment
Please, Sign In to add comment