Алгоритмы и структуры данных на С++. Аксёнова Е.А - 63 стр.

UptoLike

5.4. Реализация быстрой сортировки 63
qs (item, 0, count-1);
}
template<class stype>void qs(stype *item,int left,int right)
{
register int i, j;
stype x, y;
i=left;
j=right;
x=item[(left+right)/2];
do
{
while (item[i]<x && i<right) i++;
while (x<item[j] && j>left) j--;
if(i<=j)
{
y=item [i];
item [i]=item[j];
item [j]=y;
i++; j--;
}
} while (i<=j);
if(left<j) qs(item, left, j);
if(i<right) qs(item, i, right);
}
int comp (const void *a, const void *b)
{
return *(int*) a - *(int*) b;
}
Нерекурсивная реализация быстрой сортировки
Теперь приведем пример нерекурсивной реализации быстрой сор-
тировки с использованием ранее реализованного параметризованного
5.4.      Реализация быстрой сортировки                      63


    qs (item, 0, count-1);
}

templatevoid qs(stype *item,int left,int right)
{
  register int i, j;
  stype x, y;
  i=left;
  j=right;
  x=item[(left+right)/2];

    do
     {
           while (item[i]left) j--;

         if(i<=j)
              {
                y=item [i];
                item [i]=item[j];
                item [j]=y;
                i++; j--;
              }

    }     while (i<=j);

        if(left