Quicksort

void quickSort(int arr[], int left, int right) {
int newLeft = left, newRight = right;
      int pivot = arr[(left + right) / 2];

      /* partition */
      while (newLeft <= newRight) {
            while (arr[newLeft] < pivot)
                  newLeft++;
            while (arr[newRight] > pivot)
                  newRight--;
            if (newLeft <= newRight) {
                  int tmp = arr[newLeft];
                  arr[newLeft] = arr[newRight];
                  arr[newRight] = tmp;
                  newLeft++;
                  newRight--;
            }
      };

      /* recursion */
      if (left < newRight)
            quickSort(arr, left, newRight);
      if (newLeft < right)
            quickSort(arr, newLeft, right);
}

results matching ""

    No results matching ""