Sudah diketahui bahwa ada algoritma optimal kasus terburuk untuk menghitung kode Huffman dalam waktu . Ini ditingkatkan dalam dua cara ortogonal:
Kode bebas awalan yang optimal dapat dihitung lebih cepat jika rangkaian frekuensi yang berbeda kecil (misalnya ukuran ): mengurutkan frekuensi menggunakan [Munro dan Spira, 1976] sehingga untuk mengambil keuntungan dari nilai kecil σ , dan menghitung Huffman pohon dalam waktu linier dari frekuensi yang diurutkan. Ini menghasilkan solusi dalam O ( n lg σ )
Ada algoritma untuk menghitung kode yang setara di mana k adalah jumlah panjang codeword yang berbeda [Belal dan Elmasry].
Apakah ada cara untuk menggabungkan teknik-teknik itu, untuk meningkatkan kompleksitas terbaik saat ini ( n min { 16 k , lg σ } ) ?
THE HASIL DARI STACS 2006 TAMPAK SALAH , Elmasry diterbitkan pada ARXIV pada 2010 (http://arxiv.org/abs/cs/0509015) versi yang mengumumkan - operasi pada input yang tidak disortir dan - O ( 9 k log 2 k - 1 n ) operasi pada input yang diurutkan
Saya melihat analogi dengan kompleksitas komputasi planar convex hull, di mana algoritma dalam (berdasarkan penyortiran, sebagai algoritma O ( n lg n ) untuk kode Huffman) dan dalam O ( n h ) (pembungkus kado) ) digantikan oleh algoritma Kirkpatrick dan Seidel dalam O ( n lg h ) (kemudian terbukti optimal dengan kompleksitas bentuk O ( n H ( n 1 , … , n k ). Dalam kasus kode Prefix Free, O ( n lg n ) versus O ( n k ) menunjukkan kemungkinan suatu algoritma dengan kompleksitas O ( n lg k ) , atau bahkan O ( n H ( n 1 , ... , n k ) di mana n i adalah jumlah codeword panjang i , menggunakan analogi dari tepi cembung cembung yang meliputi n imenunjuk ke panjang kode yang mencakup simbol .
Contoh sederhana menunjukkan bahwa mengurutkan nilai-nilai logaritmik (bulat) dari frekuensi (dalam waktu linier dalam model RAM kata ) tidak memberikan kode bebas awalan yang optimal dalam waktu linier:
- Untuk , f 1 = 1 / 2 - ε dan f 2 = f 3 = 1 / 4 + ε
- jadi penyortiran log tidak mengubah urutan
- namun dua kode dari tiga biaya bit lebih dari optimal.
sumber