Быстрая сортировка (quicksort) иначе называется сортировкой Хоара. Её идея предельно проста: в массиве выбирают некий опорный элемент (pivot), разбивают массив на две части: слева элементы меньше опорного, справа — больше. Затем процесс рекурсивно повторяется для левой и правой частей массива.
Существуют разные модификации быстрой сортировки и способы её реализации. В данном варианте в функцию передаётся массив и индексы крайних элементов: quickSort(data, 0, n- 1);. В другом варианте можно было бы передавать адрес начала массива и его размер: quickSort(data, n);.
Обратим внимание на два фрагмента из кода, который расположен далее. В каждом рекурсивном вызове водятся l = left; и r = right;, они хранят индексы крайнего левого и крайнего правого элементов.