Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class HybridSort
- {
- public static void quicksort(int[] numbers, int left, int right)
- {
- int l = left;
- int r = right;
- int tmp;
- int pivot = numbers[(l + r) / 2];
- while (l <= r)
- {
- while (numbers[l] < pivot)
- l++;
- while (numbers[r] > pivot)
- r--;
- if (l <= r)
- {
- tmp = numbers[l];
- numbers[l] = numbers[r];
- numbers[r] = tmp;
- l++;
- r--;
- }
- }
- if (l < r)
- quicksort(numbers, l, r);
- if (l < r)
- quicksort(numbers, l, r);
- }
- public static void main(String[] args)
- {
- for (int a = 0; a < 20; a++)
- {
- int[] numbers = new int[(int) (Math.random() * 20 + 10)];
- for (int b = 0; b < numbers.length; b++)
- numbers[b] = (int) (Math.random() * 1000);
- for (int c = 0; c < numbers.length; c++)
- {
- System.out.print(numbers[c] + ", ");
- }
- System.out.println("");
- quicksort(numbers, 0, numbers.length - 1);
- boolean sorted = true;
- for (int b = 0; b < numbers.length; b++)
- {
- System.out.print(numbers[b] + " ");
- if (b > 0)
- sorted &= numbers[b] >= numbers[b - 1];
- }
- System.out.println(sorted ? "OK" : "ERROR");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement