allora, potresti fare:

- scegli l'elemento centrale della tua partizione corrente

se arr[mid-1] > arr[mid] hai finito, altrimenti

- se arr[last] < arr[mid] la tua nuova partizione sarà first = mid+1 e last = last
- altrimenti first = first, last = mid -1

Domanda: funziona?