iT邦幫忙

2021 iThome 鐵人賽

DAY 18
0
自我挑戰組

資料結構到演算法整理心得系列 第 18

二元樹之 IF 下策 - DAY 18

  • 分享至 

  • xImage
  •  

前言


昨天可以看到在知道數量的狀況,去調動順序,就可以減少 IF 觸發數,接下來會建立霍夫曼樹,達到最小 IF 觸發數量。不過過往歷程上,通常不會知道哪種 IF 結果數量多寡,就是照順序邏輯去撰寫。

霍夫曼樹建置


將數量小到大排序
300 > 348.5 > 530 > 1126

照順序建置
https://ithelp.ithome.com.tw/upload/images/20211002/20107754ZXJpON49ra.jpg

https://ithelp.ithome.com.tw/upload/images/20211002/20107754GtLfnhvMDx.jpg

https://ithelp.ithome.com.tw/upload/images/20211002/201077541oWbJTQvNO.jpg

轉為IF


https://ithelp.ithome.com.tw/upload/images/20211002/20107754pFubmcty3O.jpg

重新來看所有的執行次數對照


從大到小: 5686.5萬
從小到大: 5187.5萬
霍夫曼樹: 4131.5萬


上一篇
二元樹之 IF 上策 - DAY 17
下一篇
圖的基本介紹 - DAY 19
系列文
資料結構到演算法整理心得30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言