Biz liste sıralamak istediğinizi varsayalım ait gerçek sayılar. Biz sıralayabilir siyah kutu verildiğini varsayalım anında gerçek sayılar. Bu kara kutuyu kullanarak ne kadar avantaj elde edebiliriz?n √
Örneğin , kara kutuya yalnızca çağrıları olan numaraları sıralayabilir miyiz ? Bulduğum en iyi algoritma kara kutuya çağrı kullanıyor . Ama daha da geliştiremedim. İşte birleştirme-sıralama benzer benim algoritma:n
İlk bölüm listesi içine listeleri Yaklaşık ile boyutu. Ardından bu listeleri sıralamak için kara kutuya çağrılarını kullanın. Son olarak, kara kutuyu kullanarak sıralanan listeleri birleştirin:√ s1,s2,. . . ,s √ √ √
Listelerin en küçük elemanlarını yeni bir listeye , sonra sıralamak için kara kutuyu çağırın. Numara (birinci ve en küçük elemanına itibari ) en küçük bir sayı olacaktır . Çıktı listesinin ilk yerine koyabiliriz.
Eleman varsayarsak dan seçildi , biz yerine sıralama listesi ikinci en küçük eleman ile ve yine ikinci en küçük üyesi hesaplamak için üzerine siyah kutuyu çalıştırmak .
Tüm elemanlar sıralanana kadar devam ediyoruz. Bu bölüm için toplam kara kutu çağrısı sayısıL [ 1 ] L S s j L [ 1 ] s j S n - √
. Dolayısıyla toplam çağrı sayısı olacaktır .
Öte yandan, sıralama için gereken sayı karşılaştırmaları alt sınırını kullanarak bir alt sınır elde edebilmemiz gerekir gibi görünüyor: Kara kutuyu kullanarak uygulayabiliriz. karşılaştırmaları. Kara kutuya çağrıları ile ve doğrusal zamanda birleştirerek sorunu çözebilirsek, gerçek sayıyı imkansız olan karşılaştırmalarıyla sıralayabiliriz .o( √no(nlgn)
Sanırım ın kara kutuya yapılan çağrıların sayısı için bir alt sınır olduğunu kanıtlayabiliriz , çünkü kara kutuda kullanılan birçok karşılaştırma paylaşılacak ve bu nedenle argümanımızda tekrar sayılacaktı.
GÜNCELLEME: Diğer gönderilerin önerdiği gibi, de elde edilebilir.