Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Arrays;
- public class BrokenSort1
- implements Sort
- {
- private static void mergeSort(int[] paramArrayOfInt, int paramInt1, int paramInt2)
- {
- if (paramInt2 - paramInt1 <= 16)
- {
- int[] arrayOfInt = Arrays.copyOfRange(paramArrayOfInt, paramInt1, paramInt2);
- new CorrectSort().sort(arrayOfInt);
- System.arraycopy(arrayOfInt, 0, paramArrayOfInt, paramInt1, paramInt2 - paramInt1);
- }
- else
- {
- if (paramInt2 - paramInt1 < 2) {
- return;
- }
- int i = (paramInt2 + paramInt1) / 2;
- mergeSort(paramArrayOfInt, paramInt1, i);
- mergeSort(paramArrayOfInt, i, paramInt2);
- merge(paramArrayOfInt, paramInt1, i, paramInt2);
- }
- }
- private static void merge(int[] paramArrayOfInt, int paramInt1, int paramInt2, int paramInt3)
- {
- int[] arrayOfInt = new int[paramInt3 - paramInt1];
- int i = 0;int j = paramInt1;
- for (int k = paramInt2; i < arrayOfInt.length; i++) {
- if ((j < paramInt2) && ((k >= paramInt3) || (paramArrayOfInt[j] <= paramArrayOfInt[k]))) {
- arrayOfInt[i] = paramArrayOfInt[(j++)];
- } else {
- arrayOfInt[i] = paramArrayOfInt[(k++)];
- }
- }
- System.arraycopy(arrayOfInt, 0, paramArrayOfInt, paramInt1, paramInt3 - paramInt1 - 1);
- }
- public void sort(int[] paramArrayOfInt)
- {
- mergeSort(paramArrayOfInt, 0, paramArrayOfInt.length);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment