Aşağıdaki ayarı göz önünde bulundurun:
- bir yığın verilir içerir , n ürün.
- sabit sayıda ekstra yığın kullanabiliriz.
- bu yığınlara aşağıdaki işlemleri uygulayabiliriz:
- bir yığının boş olup olmadığını kontrol edin,
- iki yığının üst öğelerini karşılaştırır,
- bir yığındaki üst öğeyi sil,
- üstteki öğeyi bir yığının içine bas,
- bir yığının üst öğesini başka bir yığına kopyalayın,
- bir yığının içeriğini başka bir yığına kopyalayın.
Bunlara izin verilen tek işlem olduğunu unutmayın. Öğeleri değiştiremeyiz ve üst öğeyi bir yığına kopyalama dışında herhangi bir öğeyi yığınların üzerine itmemize izin verilmez (bundan sonra hedef yığının önceki içeriği atılır ve yalnızca kopyalanan öğeyi içerir) .
Yığınları karşılaştırmalarıyla sıralamak için bir algoritma :
last := empty
for i from 1 to n
min := empty
w := s
while w is not empty
if w.top > last and w.top < min
min := w.top
delete w.top
print min
last := min
Daha iyisini yapabilir miyiz?
Yığınlardaki öğelerin sıralı listesini yalnızca karşılaştırmaları kullanarak yazdıran bir program var mı ?