private static int partition(Sortable data, int i, int j) { // can be selected randomly int pivot = i + (j - i) / 2; while (i <= j) { while (data.isLess(i, pivot)) { i++; } while (data.isLess(pivot, j)) { j--; } if (i <= j) { data.swap(i, j); if (i == pivot) { pivot = j; } else if (j == pivot) { pivot = i; } i++; j--; } } return i; }
private static void bubbleSort(Sortable data, int left, int right) { for (int i = right; i > left; i--) { for (int j = left; j < i; j++) { if (data.isLess(j + 1, j)) { data.swap(j, j + 1); } } } }
private static int partition(Sortable data, int i, int j) { // can be selected randomly int pivot = i + (j - i) / 2; while (i <= j) { while (data.isLess(i, pivot)) { i++; } while (data.isLess(pivot, j)) { j--; } if (i <= j) { data.swap(i, j); if (i == pivot) { pivot = j; } else if (j == pivot) { pivot = i; } i++; j--; } } return i; }
private static void bubbleSort(Sortable data, int left, int right) { for (int i = right; i > left; i--) { for (int j = left; j < i; j++) { if (data.isLess(j + 1, j)) { data.swap(j, j + 1); } } } }