Составители:
Рубрика:
70 Глава 5. Сортировка
{
stack <int> s(50);
push2(s,l,r);
while(!s.empty())
{
l=s.pop();
r=s.pop();
if (r<=l) continue;
int i=partition(a,l,r);
if(i-1>r-i)
{
push2(s,l,i-1);
push2(s,i+1,r);
}
else
{
push2(s,i+1,r);
push2(s,l,i-1);
}
}
}
template <class item> int partition(item *a,int l,int r)
{
int i=l-1, j=r;
item v=a[r], c;
for(;;)
{
while(a[++i]<v);
while(v<a[--j])
if(j==l) break;
if(i>=j) break;
70 Глава 5. Сортировка { stacks(50); push2(s,l,r); while(!s.empty()) { l=s.pop(); r=s.pop(); if (r<=l) continue; int i=partition(a,l,r); if(i-1>r-i) { push2(s,l,i-1); push2(s,i+1,r); } else { push2(s,i+1,r); push2(s,l,i-1); } } } template int partition(item *a,int l,int r) { int i=l-1, j=r; item v=a[r], c; for(;;) { while(a[++i] =j) break;
Страницы
- « первая
- ‹ предыдущая
- …
- 68
- 69
- 70
- 71
- 72
- …
- следующая ›
- последняя »