- void SortingThread::quickSort(QList<int> numbers, int left, int right)
- {
- int i = left, j = right;
- int pivot = numbers[(left + right) / 2];
- // partition
- while( i <= j )
- {
- while( numbers[i] < pivot )
- i++;
- while( numbers[j] > pivot )
- j--;
- if( i <= j )
- {
- swap(numbers, i, j);
- i++;
- j--;
- }
- }
- // recursion
- if( left < j )
- quickSort(numbers, left, j);
- if( i < right )
- quickSort(numbers, i, right);
- }