This quicksort is supposed to sort \"v[left]...v[right] into increasing order\"; copied (without comments) from The C Programming Language by K&R (Second Edition):
Yes, you're right. You can use left - (left - right) / 2 to avoid overflows.
left - (left - right) / 2