Karşılaştırma esaslı modeldeki element farklılığının zamanda yapılamayacağını hepimiz biliyoruz . Bununla birlikte, bir kelime-RAM'de, biri daha iyi olabilir.
Tabii ki, eğer biri doğrusal zamanda hesaplanabilen mükemmel bir karma fonksiyonunun varlığını varsayarsak, elementin farklılığı için bir lineer zaman algoritması elde ederiz: sadece rakamları birer birer karıştırmaya devam edin ve bir çarpışma varsa 1 ile geri dönün.
Bununla birlikte, iki mesele var: 1) kullanılmış rastgelelik bulabildiğim mükemmel karma fonksiyonların çoğu yapısı ve 2) ön işlem zamanının herhangi bir yerinde bir tartışma bulamıyorum, yani hangi karma fonksiyonun ne olacağına karar vermek için gereken zaman Girilen sayı kümesini temel alarak kullanılır.
Fredman ve arkadaşlarının " en kötü durum erişim zamanı ile seyrek bir tabloyu saklama 0 ( 1 ) " en kötü durumda erişim süresi ile bir karma işlevi sağlayarak ilk sorunu çözer , ancak ikinci sorun hakkında hiçbir şey söylemez .
Özetle, istediğim şey şu:
Verilen bir dizi olduğu bir algoritma Tasarım ve numaraları (her sayı olmak kelime uzunluğu olan bir kelime RAM uzun bit) , bir müzakere fonksiyonu, bulur olarak zaman, ki burada . İşlev için herhangi bir bu özelliğine sahip olması gerekir , elemanların sayısı, harita bu bir sabittir ve bilgisayar almalıdır, n ağırlık ağırlık h : S → { 1 , ... , m } O ( n ) m = O ( n ) H j ∈ { 1 , ... , m } S j s ( i ) O ( 1 ) O ( 1 )"makul" bir kelime-RAM modelinde zaman, yani model, kelimelerdeki "egzotik" işlevlerin zamanda değerlendirilmesine izin vermemelidir .
Ayrıca, hash işlevlerini hiç kullanmayan sözcük-RAM'de element farkını çözmek için algoritmalar olup olmadığını bilmek isterim.