快速排序例子.txt 640 B

12345678910111213141516171819202122232425262728293031
  1. public static void main(String[] args) {
  2. int len = 8000000;
  3. int[] a = new int[len];
  4. for (int i = 0; i < a.length; i++) {
  5. int t = (int) (Math.random() * 10000);
  6. a[i] = t;
  7. }
  8. }
  9. public static void sort(int left, int right, int[] arr) {
  10. int l = left;
  11. int r = right;
  12. int pivot = arr[(left + right) / 2];
  13. int temp = 0;
  14. while (l < r) {
  15. while (arr[l] < pivot) l++;
  16. while (arr[r] > pivot) r--;
  17. if (l >= r) bread;
  18. temp = arr[l];
  19. arr[l] = arr[r];
  20. arr[r] = temp;
  21. if (arr[l] == pivot) --r;
  22. if (arr[r] == pivot) ++l;
  23. }
  24. if (l == r) {
  25. l++;
  26. r--;
  27. }
  28. if (left < r) sort(left, r, arr);
  29. if (right > l) sort(l, right, arr);
  30. }