Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package Three;
- /**
- * Created by Daniel on 4/6/2016.
- */
- /*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
- /**
- *
- * @author David
- */
- public class SortableArrayListWithQuickSort<T extends Comparable<T>> extends SortableArrayListWithStack {
- @Override
- protected void sortSubArray(
- int[] arr, int low, int high)
- {
- if (arr == null || arr.length == 0) {
- return;
- }
- if (low >= high) {
- return;
- }
- // pick the pivot
- int middle = low + (high - low) / 2;
- int pivot = arr[middle];
- // make left < pivot and right > pivot
- int i = low, j = high;
- while (i <= j) {
- while (arr[i] < pivot) {
- i++;
- }
- while (arr[j] > pivot) {
- j--;
- }
- if (i <= j) {
- int temp = arr[i];
- arr[i] = arr[j];
- arr[j] = temp;
- i++;
- j--;
- }
- }
- // recursively sort two sub parts
- if (low < j) {
- sortSubArray(arr, low, j);
- }
- if (high > i) {
- sortSubArray(arr, i, high);
- }
- }
- private void quickSort(int[] arr, int low, int j) {
- }
- @Override
- protected void sortSubArray(Comparable[] listItems, int lowIndex, int highIndex) {
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement