Сортировка с использованием рекурсии

Рейтинг: 0Ответов: 0Опубликовано: 18.11.2014

Всем привет.

Начал разбираться с быстрой сортировкой, и возникла масса вопросов. В книге смутно описано, на обучалках в ютубе совсем крах. В общем, вот ниже код с комментариями в виде вопросов:

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);

}

}

Ответы

Ответов пока нет.