Belirleme için saf algoritma B itibaren A:
İçin k=1,…,ndeğerini belirlemek B(k) her birini karşılaştırarak A(i) için A(k) için
i=1,…,k ve tatmin olanları saymak A(i)<A(k).
Bu algoritma karşılaştırır A(1) diğerlerine (n−1 zamanlar), A(2) için n−2 diğerleri, vb. yani toplam karşılaştırma sayısı (n−1)(n−2)2. Ama bu yapabileceğimiz en iyi şey değil. Örneğin,B(n), karşılaştırma yapmak zorunda değiliz! B(n)=A(n)−1çünkü bu ilk n doğal sayılar ve (permütasyondan bağımsız olarak) n−1daha düşük doğal sayılar olacak. Ne dersinB(n−1)? Kontrol etmek yerineA(1) vasıtasıyla A(n−2), kontrol edebiliriz A(n). Yani:
İçin k=1,…,n2, yukarıdaki algoritmayı kullanın; için
k=n2,…,n ters algoritmayı kullanın: B(k) başlangıçta A(n)−1 ve sonra çıkarılıyor 1 her giriş için A(i) için i=k+1,…,n bu daha az A(k).
Bu sürer 2×(n2−1)(n2−2)2=(n−2)(n−4)4 adımlar, ki bu hala O(n2). Ayrıca,A itibaren B, Eğer B(n)=A(n)−1 sonra A(n)=B(n)+1.
Ama şimdi daha fazla incelik için. Biraz ek alana izin verirsek veya yerinde sıralayabilirsek, sayıları karşılaştırırken sıralayabiliriz. Örneğin:
∣∣∣∣ASB8904803701407332219166655∣∣∣∣
Hepsini kontrol etmek (veya sırayla kontrol etmek yerine), her birini belirlemek için ikili aramayı kullanabiliriz. B(k). Ancak, sıralama hala zaman alırO(nlogn).