এটা সর্বজনবিদিত একটি খারাপ ক্ষেত্রে অনুকূল সময় Huffman কোড গনা অ্যালগরিদম নেই । এটি দুটি অরথোগোনাল উপায়ে উন্নত হয়েছে:
সর্বাপেক্ষা কাম্য উপসর্গ বিনামূল্যে কোডগুলি দ্রুত নির্ণিত হতে পারে যদি স্বতন্ত্র ফ্রিকোয়েন্সি সেট ছোট (আকার যেমন হয় ): [মুনরো ও Spira, 1976] ব্যবহার সাজানোর ফ্রিকোয়েন্সি যাতে ছোট মান সুবিধা গ্রহণ করতে এবং গনা যাও Huffman বাছাই করা ফ্রিকোয়েন্সি থেকে লিনিয়ার সময়ে গাছ tree এটি O ( n lg σ ) এ একটি সমাধান দেয়
একটা হল অ্যালগরিদম সমতুল্য কোড যেখানে গনা হয় স্বতন্ত্র codewords লেন্থ সংখ্যা [বেলাল এবং Elmasry]।
STACS 2006 থেকে ভুল হবে বলে মনে হচ্ছে , Elmasry arXiv প্রকাশিত 2010 সালে (http://arxiv.org/abs/cs/0509015) একটি সংস্করণ ঘোষণা - পাঁচমিশালী ইনপুটের অপারেশন এবং - সাজানো ইনপুটটিতে ক্রিয়াকলাপ
আমি প্ল্যানার উত্তল জাহাজের কাঠাম, যেখানে আলগোরিদিম কম্পিউটিং জটিলতা সঙ্গে একটি উপমা দেখতে (বাছাই ভিত্তিক, যেমন যাও Huffman এর কোড জন্য এলগরিদম) এবং (উপহার মোড়ানো) কিরকপ্যাট্রিক এবং সিডেলের অ্যালগরিদম দ্বারা (পরে ফর্মের জটিলতার সাথে উদাহরণস্বরূপ অনুকূল প্রমাণিত )। উপসর্গের ফ্রি কোডগুলির ক্ষেত্রে, বনাম জটিলতা সঙ্গে একটি আলগোরিদিম সম্ভাবনা প্রস্তাব দেওয়া , অথবা এমনকি যেখানে দৈর্ঘ্যের codewords সংখ্যা, হলের একটি প্রান্তের উপমা ব্যবহার করে একটি কোডের দৈর্ঘ্যকে চিহ্নগুলিকে আচ্ছাদন করে covering
একটি সাধারণ উদাহরণ দেখায় যে ফ্রিকোয়েন্সিগুলির (বৃত্তাকার) লোগারিথমিক মানগুলি বাছাই করা ( শব্দ র্যাম মডেলের লিনিয়ার সময়ে) লিনিয়ার সময়ে একটি অনুকূল উপসর্গের বিনামূল্যে কোড দেয় না:
- জন্য , এবং
- সুতরাং লগ বাছাইয়ের ক্রম পরিবর্তন হয় না
- তিনটির মধ্যে দুটি কোড অপেক্ষাকৃত তুলনায় বিটের চেয়ে বেশি দাম দেয় ।
আর একটি আকর্ষণীয় প্রশ্ন হ'ল বড় হলে জটিলতা হ্রাস করা হবে , যেমন সমস্ত কোডের আলাদা দৈর্ঘ্য থাকে:
- উদাহরণস্বরূপ যখন ফ্রিকোয়েন্সিগুলি পৃথক লগ মান হয়। এক্ষেত্রে কেউ শব্দ র্যামে ফ্রিকোয়েন্সিগুলি বাছাই করতে পারে এবং রঙ্গিন সময়ে হাফম্যান কোডটি গণনা করতে পারে (কারণ তাদের লগ মানগুলি বাছাই করা মানগুলি বাছাই করতে যথেষ্ট) ফলে সামগ্রিক রৈখিক সময় , বেলাল এবং এলমাস্রি এর অ্যালগরিদম থেকে চেয়ে অনেক ভাল ।