Сортировка с использованием рекурсии
Всем привет.
Начал разбираться с быстрой сортировкой, и возникла масса вопросов. В книге смутно описано, на обучалках в ютубе совсем крах. В общем, вот ниже код с комментариями в виде вопросов:
private static void qs(int items[],int left, int right){
int i,j;
int x,y;
i = left; j = right;
x = items[(left+right)/2];
do {
while ((items[i]<x) && (i<right)) i++;
while ((x<items[j]) && (j > left)) j--;
// Мы сравниваем индексы массива или их значения??
if (i <= j) {
y = items[i];
items[i] = items[j];
items[j] = y;
i++;j--;
}
} while (i<=j);
// Для чего оператор if не совсем понятно?
if (left<j) qs(items,left,j);
if(i<right) qs(items,i,right);
}
}
Источник: Stack Overflow на русском