Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/TwoArrayQuickSort.java')
-rw-r--r--build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/TwoArrayQuickSort.java69
1 files changed, 35 insertions, 34 deletions
diff --git a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/TwoArrayQuickSort.java b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/TwoArrayQuickSort.java
index dbec276fc01..719ab5f9d99 100644
--- a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/TwoArrayQuickSort.java
+++ b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/TwoArrayQuickSort.java
@@ -16,59 +16,60 @@ package org.eclipse.cdt.internal.autotools.ui.editors.automake;
import org.eclipse.core.runtime.Assert;
-
/**
* Quick sort to sort two arrays in parallel.
*/
public class TwoArrayQuickSort {
- private static void internalSort(String[] keys, Object[] values, int left, int right, boolean ignoreCase) {
-
- int originalLeft= left;
- int originalRight= right;
-
- String mid= keys[(left + right) >>> 1];
- do {
- while (smaller(keys[left], mid, ignoreCase)) {
- left++;
- }
- while (smaller(mid, keys[right], ignoreCase)) {
- right--;
- }
- if (left <= right) {
- String tmp= keys[left];
- keys[left]= keys[right];
- keys[right]= tmp;
-
- Object tmp2= values[left];
- values[left]= values[right];
- values[right]= tmp2;
-
- left++;
- right--;
- }
+ private static void internalSort(String[] keys, Object[] values, int left, int right, boolean ignoreCase) {
+
+ int originalLeft = left;
+ int originalRight = right;
+
+ String mid = keys[(left + right) >>> 1];
+ do {
+ while (smaller(keys[left], mid, ignoreCase)) {
+ left++;
+ }
+ while (smaller(mid, keys[right], ignoreCase)) {
+ right--;
+ }
+ if (left <= right) {
+ String tmp = keys[left];
+ keys[left] = keys[right];
+ keys[right] = tmp;
+
+ Object tmp2 = values[left];
+ values[left] = values[right];
+ values[right] = tmp2;
+
+ left++;
+ right--;
+ }
} while (left <= right);
-
+
if (originalLeft < right) {
- internalSort(keys , values, originalLeft, right, ignoreCase);
- }
+ internalSort(keys, values, originalLeft, right, ignoreCase);
+ }
if (left < originalRight) {
- internalSort(keys, values, left, originalRight, ignoreCase);
- }
+ internalSort(keys, values, left, originalRight, ignoreCase);
+ }
}
+
private static boolean smaller(String left, String right, boolean ignoreCase) {
if (ignoreCase)
return left.compareToIgnoreCase(right) < 0;
- return left.compareTo(right) < 0;
+ return left.compareTo(right) < 0;
}
+
/**
* Sorts keys and values in parallel.
*/
- public static void sort(String[] keys, Object[] values, boolean ignoreCase) {
+ public static void sort(String[] keys, Object[] values, boolean ignoreCase) {
if (keys != null && values != null) {
Assert.isTrue(keys.length == values.length);
if (keys.length > 1)
- internalSort(keys, values, 0, keys.length - 1, ignoreCase);
+ internalSort(keys, values, 0, keys.length - 1, ignoreCase);
} else {
if (keys != null || values != null)
Assert.isTrue(false, "Either keys or values in null"); //$NON-NLS-1$

Back to the top