免费爱碰视频在线观看,九九精品国产屋,欧美亚洲尤物久久精品,1024在线观看视频亚洲

      Python算法之哈夫曼編碼

      Python算法之哈夫曼編碼

      問題:哈夫曼編碼,英文名稱Huffman Coding,有時也翻譯為霍夫曼編碼,在1952年提出的,是最好的編碼方式。哈夫曼編碼在電子通訊方面有著重要的應(yīng)用,同時也廣泛應(yīng)用于數(shù)據(jù)壓縮,其壓縮率通常在20% 90%之間 赫夫曼碼是可變字長編碼(VLC)的一種。哈夫曼樹是最優(yōu)二叉樹,帶權(quán)路徑長度最小的二叉樹。

      原理:

      假設(shè)有幾個數(shù)字40,10,20,16,14。

      首先將這五個數(shù)字按照從小到大的順序排列:10, 14,16,20, 40。

      構(gòu)建哈夫曼樹:

      1.首先選取10,14

      2.重新排序:16,20,24,40

      3.重新排序24,36,40,60

      4.按照二叉樹左0右1,構(gòu)建哈夫曼樹

      所以最終得到數(shù)字10的編碼為100,數(shù)字14的編碼為101,數(shù)字16的編碼為110,數(shù)字20的編碼為111,數(shù)字40的編碼為0。

      代碼:

      from heapq import *inp = input(‘請輸入要構(gòu)建哈夫曼樹的字符串:’)# 統(tǒng)計每個字符出現(xiàn)的頻率并生成字典def generate_dict(s): dic = {} for i in s: if i not in dic: dic[i] = 1 else: dic[i] += 1 return dicdic = generate_dict(inp)# 節(jié)點類class Node: def __init__(self, name=None, weight=None): self.name = name self.weight = weight self.parent = None self.left = None self.right = None self.id = None # 自定義類的比較 def __lt__(self, other): return int(self.weight) < int(other.weight)# 按權(quán)值排序def sort(list): return sorted(list, key=lambda Node: Node.weight)def generate_node2(dic): lis = [] for i in dic: newNode = Node(i, dic[i]) heappush(lis, newNode) return lislis = generate_node2(dic)# Huffman編碼2使用堆的方式def HuffmanTree2(lis): global id while len(lis) != 1: a = heappop(lis) b = heappop(lis) new = Node() new.weight = a.weight + b.weight new.left, new.right = a, b a.parent = new b.parent = new heappush(lis, new) return lislis = HuffmanTree2(lis)node = lis[0]# 定義前序遍歷方法并執(zhí)行一定的操作def pre_order(root, code): if root is None: code = code[:-1] return pre_order(root.left, code + '0') if root.name is not None: print(root.name, '的權(quán)重為', root.weight, '編碼為', code) pre_order(root.right, code + '1')code = ''print('構(gòu)造的哈夫曼樹為:')pre_order(node, code)

      運行結(jié)果:

      請輸入要構(gòu)建哈夫曼樹的字符串:12908755343298構(gòu)造的哈夫曼樹為:1 的權(quán)重為 1 編碼為 0007 的權(quán)重為 1 編碼為 0015 的權(quán)重為 2 編碼為 0109 的權(quán)重為 2 編碼為 0112 的權(quán)重為 2 編碼為 1000 的權(quán)重為 1 編碼為 10104 的權(quán)重為 1 編碼為 10118 的權(quán)重為 2 編碼為 1103 的權(quán)重為 2 編碼為 111

      鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系管理員(admin#wlmqw.com)刪除。
      用戶投稿
      上一篇 2022年6月12日 14:44
      下一篇 2022年6月12日 14:44

      相關(guān)推薦

      • 閑魚無貨源怎么賺錢(閑魚無貨源賣什么好)

        如今電商平臺開店,無貨源模式已經(jīng)成為大家最普遍的開店方式了,而其中閑魚無貨源就是不少人的首選。閑魚無貨源是一個很適合普通人操作的暴利項目,如果你沒有知識,技能,經(jīng)驗,資源,就先從閑…

        2022年11月25日
      • 百度關(guān)鍵詞快速排名的4大原理解析(百度怎么刷關(guān)鍵詞)

        近期百度公告驚雷算法2.0,升級之快還是第一次吧,看來百度對于刷點擊行為是零容忍了。之前尹華峰SEO技術(shù)博客介紹過一篇如何使用刷點擊工具,其實市面上有很多這類SEO快速排名的軟件,…

        2022年11月25日
      • 淘寶直播平臺抽成多少(淘寶直播平臺抽成比例)

        隨著時代的發(fā)展,現(xiàn)在直播帶貨已經(jīng)成為主要帶貨方式,其中淘寶是主流帶貨平臺,不少人在上面直播帶貨賺錢,一些小伙伴也想加入,那么淘寶直播平臺抽成多少?下面小編為大家?guī)硖詫氈辈テ脚_抽成…

        2022年11月24日
      • 白襯衫搭配什么褲子好看,女生襯衫穿法圖片

        說起白襯衫和長褲的搭配組合,不知道大家有沒有發(fā)現(xiàn),雖然是很常見的造型,可不同年齡段慣用的穿搭方式卻不相同,從而也穿出了不同的味道。簡直是現(xiàn)在這個季節(jié),時髦精們的必備造型之一~ 70…

        2022年11月24日
      • 劇情找找茬第九關(guān)怎么過 劇情找找茬第九關(guān)攻略技巧

        劇情找找茬第九關(guān)的劇情是鎖山傳人,許多小伙伴都還不太清楚要怎么通關(guān),下面小編就給大家?guī)砹藙∏檎艺也绲诰抨P(guān)通關(guān)攻略,感興趣的小伙伴快來看看吧。 劇情找找茬第九關(guān)怎么過 第一步:點擊…

        2022年11月23日
      • seo宣傳推廣(SEO推廣)

        今天小編給各位分享seo宣傳推廣的知識,其中也會對SEO推廣進行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧! 如何做seo網(wǎng)絡(luò)推廣? 做網(wǎng)絡(luò)推廣的方法: 1、…

        2022年11月20日
      • 繪制高質(zhì)量的業(yè)務(wù)流程圖的5個步驟詳解(業(yè)務(wù)邏輯流程圖解析)

        在日常工作中,產(chǎn)品經(jīng)理需要經(jīng)常和業(yè)務(wù)流程圖打交道。對于新手產(chǎn)品經(jīng)理來說,業(yè)務(wù)流程圖也是必須掌握的基本功之一。但是繪制流程圖并不是一件簡單的事情,本文作者從自身工作實踐出發(fā),結(jié)合相關(guān)…

        2022年11月20日
      • 產(chǎn)品推廣渠道有哪些方式(推廣自己的產(chǎn)品)

        首先,需要做好產(chǎn)品定位和市場定位,這是最基礎(chǔ)的,然后是市場宣傳,可以考慮以下方式: 1,淘寶天貓京東等電商推廣 開通電商銷售渠道,做好運營。 2,社區(qū)論壇推廣 論壇和社區(qū)的發(fā)帖和回…

        2022年11月19日
      • 亞馬遜一般發(fā)什么物流(亞馬遜物流的特點有哪些)

        fba物流運輸方式有哪些?都有哪些特點?我們熟知的fba物流運輸方式有海運、空運、還有國際快遞,那么你知道它們都有哪些特點嗎? 一、空運的方式 亞馬遜fba物流方式有很多,空運只是…

        2022年11月18日
      • 3階魔方教程 1~7步驟(魔方教程一步一步圖解)

        基礎(chǔ)層先魔方復(fù)原法 by信手拈花 0. 魔方轉(zhuǎn)動的公式表示和復(fù)原步驟 0. 1魔方轉(zhuǎn)動的公式表示 魔方轉(zhuǎn)動的公式表示 0. 2層先法魔方復(fù)原步驟 層先法魔方復(fù)原步驟 讓我開始魔方復(fù)…

        2022年11月18日

      聯(lián)系我們

      聯(lián)系郵箱:admin#wlmqw.com
      工作時間:周一至周五,10:30-18:30,節(jié)假日休息