تخفیف نوروزی پی استور
هزینه سفارش:
۱۱۹,۰۰۰ تومان
الگوریتم هافمن Huffman یکی از الگوریتمهای فشرده سازی میباشد که این روش بوسیلهٔ دیوید هافمن توسعه یافت. در الگوریتم هافمن با توجه به تکرار کارکترها کد باینری به آنها تعلق میگیرد بدین صورت که برای کاراکترهای با تعداد تکرار بالا کدهای کوتاه و برای کاراکترهای با تکرار کم کدهای با طول بالا. این شیوه در نهایت منجر به ایجاد ساختاری از بیتها برای ذخیره سازی میشود که فضای کمتری را نسبت به روشهای معمولی اشغال میکند.
در این بخش سورس کد پروژه الگوریتم هافمن HUFFMAN در سی شارپ #C قرار داده شده است. الگوریتم هافمن Huffman یکی از الگوریتمهای فشرده سازی میباشد که این روش بوسیلهٔ دیوید هافمن توسعه یافت. وی دانشجوی دورهٔ دکتری در دانشگاه MIT بود و در سال ۱۹۵۲ مقالهٔ «روشی برای تولید کدی با کمترین تکرار » را منتشر کرد.
در الگوریتم هافمن با توجه به تکرار کارکترها کد باینری به آنها تعلق میگیرد بدین صورت که برای کاراکترهای با تعداد تکرار بالا کدهای کوتاه و برای کاراکترهای با تکرار کم کدهای با طول بالا. این شیوه در نهایت منجر به ایجاد ساختاری از بیتها برای ذخیره سازی میشود که فضای کمتری را نسبت به روشهای معمولی اشغال میکند.
به بیان دیگر یا علمیتر میتوان گفت در کدگذاری هافمن، از روشی خاص برای انتخاب نحوهٔ نمایش هر نماد استفاده میشود. یعنی در این روش رشتهای که نشان دهندهٔ یک کاراکتر خاص است هیچ گاه پیشوند رشتهٔ دیگر که نمایانگر نویسهٔ دیگر است، نمیباشد.
در این روش کاراکترهای پرکاربردتر با رشتههای بیتی کوتاهتری نسبت به آنهایی که کاربردشان کمتر است، نشان داده میشوند. دیوید هافمن روشی که کارآمدترین کد برای فشرده سازی از این نوع را میسازد طراحی کرد.
در توضیح الگوریتم هافمن HUFFMAN میتوان فرض کرد میخواهید تکه اطلاعات زیر رافشرده کنید:
ACDABA
از آنجایی که ۶ کاراکتر داریم، این متن ۶ بایت یا ۴۸ بیت میباشد. (یعنی برای هر کاراکتر یک بایت ) با رمز گزاری هافمن، فایل برای بیشترین تکرار ظاهر شدن کاراکترها(در این مثال نماد A سه بار تکرار می شود) جستجو میشود و سپس یک درخت ساخته میشود که کاراکترها را با رشته بیتهای کوتاهتر جایگزین میکند. در این حالت خاص الگوریتم از جدول جایگزینی زیر استفاده میکند:
A=0 , B=10 , C=110 , D=111
اگر این کد برای فشرده سازی فایل استفاده شود، اطلاعات فشرده شده به صورت زیر در میآیند:
۰۱۱۰۱۱۱۰۱۰۰
این به این معنی است که ۱۱ بیت به جای ۴۸ بیت مصرف میشود. کد گذاری به روش هافمن، روشی است برای بهینه سازی مقدار حجم استفاده شده برای نگهداری دادههای معلوم است.
برای نمونه یکی از توابع را در اینجا توضیح میدهیم:
با فشار دادن دکمه “فشرده سازی” تابع Compression.Compress اجرا میشود و دو آرگومان inputRTxt.Text و Compression.Compress را به عنوان ورودی دریافت میکند و بعد از فراخوانی تابع تعداد کاراکترها شمرده شده و درخت مورد نظر تشکیل میشود که در زیر سورس تابع را مشاهده میکنید.
pre class="lang:c# decode:true"> private string compression(String text, Compression compress) { if (!string.IsNullOrEmpty(text)) { if (compress == Compression.Compress) { huffman(text); for (int i = 0; i < usedCharCount; i++) codeTable.Items.Add(((TreeNode)map_table[i]).ToolTipText + " >> " + ((TreeNode)map_table[i]).Name); string result = string.Empty; for (int i = 0; i < text.Length; i++) result += search_char(text.Substring(i, 1)); return result; } else { string result = string.Empty; for (int i = 0, index = 0, len = 1; i < text.Length; i++) search_binaryText(ref result, text.Substring(index, len), ref index, ref len); return result; } } return null; }
سورس کد الگوریتم هافمن HUFFMAN در سی شارپ #C با استفاده از Microsoft Visual Studio 2013 نوشته شده است و دارای گزارش کار ۵ صفحهای در Word است و بصورت کامل توسط گروه پشتیبانی پی استور تست و اجرا شده است فایل دارای نشان تضمین کیفیت پی استور میباشد. برای دانلود اثر مذکور آن را خریداری کنید.
تیم برنامه نویسی پی استور یکی از اولین گروههای تشکیل شده در مجموعه آموزشی پی استور میباشد. این تیم از اساتید مجرب و فارغ التحصیلان رشتههای فنی و مهندسی تشکیل شده که در زمینههای مختلف برنامهنویسی و تهیه سورس کد فعال هستند.
نام اثر: | الگوریتم هافمن HUFFMAN در سی شارپ #C |
نوع اثر: | سورس کد |
برنامهنویس: | تیم برنامهنویسی پیاستور |
زبان برنامه نویسی: | سی شارپ #C |
ویژگی: | قابلیت دانلود و ویرایش |
توجه: کیفیت این محصول توسط پی استور تضمین شده و در صورت عدم رضایت از محصول، به انتخاب شما:
هزینه سفارش:
۱۱۹,۰۰۰ تومان
نظرات
پینار
با سلام و خسته نباشید نحوه اجرای سورس کد رو از پیش نمایش دیدم، توضیحات خوبی در گزارش کار بود که اشکالاتم برطرف شد.
مدیریت و پشتیبانی
نظرات و پیشنهادات خود را با ما در میان بگذارید.