Составители:
Рубрика:
5.4. Реализация быстрой сортировки 65
inline void push2(stack<int> &s, int A, int B)
{
s.push(B);
s.push(A);
}
template<class item>void quicksort(item *a,int l,int r)
{
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;
5.4. Реализация быстрой сортировки 65 inline void push2(stack&s, int A, int B) { s.push(B); s.push(A); } template void quicksort(item *a,int l,int r) { stack 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 int partition(item*a,int l,int r) { int i=l-1, j=r; item v=a[r],c;
Страницы
- « первая
- ‹ предыдущая
- …
- 63
- 64
- 65
- 66
- 67
- …
- следующая ›
- последняя »