1 21 package oracle.toplink.essentials.internal.helper; 23 24 25 28 public class TOPSort { 29 public TOPSort() { 30 } 31 32 public static void quicksort(Object [] arrayToSort, int left, int right, TOPComparison compareOperator) { 33 if (left >= right) { 34 return; 35 } 36 swapElements(arrayToSort, left, (left + right) / 2); 37 int last = left; 38 for (int i = left + 1; i <= right; i++) { 39 if (compareOperator.compare(arrayToSort[i], arrayToSort[left]) < 0) { 40 swapElements(arrayToSort, ++last, i); 41 } 42 } 43 swapElements(arrayToSort, left, last); 44 quicksort(arrayToSort, left, last - 1, compareOperator); 45 quicksort(arrayToSort, last + 1, right, compareOperator); 46 } 47 48 public static void quicksort(Object [] arrayToSort, TOPComparison compareOperator) { 49 quicksort(arrayToSort, 0, arrayToSort.length - 1, compareOperator); 50 } 51 52 protected static void swapElements(Object [] arrayToSort, int index1, int index2) { 53 Object tempIndex = arrayToSort[index1]; 54 arrayToSort[index1] = arrayToSort[index2]; 55 arrayToSort[index2] = tempIndex; 56 } 57 } 58 | Popular Tags |