From 2e2d499a45b185f72ae1e4b2c04bf3dfc9fa90ec Mon Sep 17 00:00:00 2001 From: CyC2018 <1029579233@qq.com> Date: Thu, 14 Jun 2018 12:51:36 +0800 Subject: [PATCH] auto commit --- notes/算法.md | 128 ++++++++++++++++++ pics/1c4e8185-8153-46b6-bd5a-288b15feeae6.png | Bin 0 -> 6144 bytes pics/2861e923-4862-4526-881c-15529279d49c.png | Bin 0 -> 6144 bytes pics/3ff4f00a-2321-48fd-95f4-ce6001332151.png | Bin 0 -> 16384 bytes pics/54f1e052-0596-4b5e-833c-e80d75bf3f9b.png | Bin 0 -> 6144 bytes pics/8587132a-021d-4f1f-a8ec-5a9daa7157a7.png | Bin 0 -> 6144 bytes 6 files changed, 128 insertions(+) create mode 100644 pics/1c4e8185-8153-46b6-bd5a-288b15feeae6.png create mode 100644 pics/2861e923-4862-4526-881c-15529279d49c.png create mode 100644 pics/3ff4f00a-2321-48fd-95f4-ce6001332151.png create mode 100644 pics/54f1e052-0596-4b5e-833c-e80d75bf3f9b.png create mode 100644 pics/8587132a-021d-4f1f-a8ec-5a9daa7157a7.png diff --git a/notes/算法.md b/notes/算法.md index 18366255..207621ce 100644 --- a/notes/算法.md +++ b/notes/算法.md @@ -31,6 +31,9 @@ * [红黑树](#红黑树) * [散列表](#散列表) * [小结](#小结) +* [七、其它](#七其它) + * [汉诺塔](#汉诺塔) + * [哈夫曼编码](#哈夫曼编码) * [参考资料](#参考资料) @@ -2032,6 +2035,131 @@ public class SparseVector { } ``` +# 七、其它 + +## 汉诺塔 + +这是一个经典的递归问题,分为三步求解: + +1. 将 n-1 个圆盘从 from -> buffer +2. 将 1 个圆盘从 from -> to +3. 将 n-1 个圆盘从 buffer -> to + +如果只有一个圆盘,那么只需要进行一次移动操作,从上面的移动步骤可以知道,n 圆盘需要移动 (n-1)+1+(n-1) = 2n-1 次。 + +

+ +

+ +

+ +

+ +```java +public class Hanoi { + public static void move(int n, String from, String buffer, String to) { + if (n == 1) { + System.out.println("from " + from + " to " + to); + return; + } + move(n - 1, from, to, buffer); + move(1, from, buffer, to); + move(n - 1, buffer, from, to); + } + + public static void main(String[] args) { + Hanoi.move(3, "H1", "H2", "H3"); + } +} +``` + +```html +from H1 to H3 +from H1 to H2 +from H3 to H2 +from H1 to H3 +from H2 to H1 +from H2 to H3 +from H1 to H3 +``` + +## 哈夫曼编码 + +哈夫曼编码根据数据出现的频率对数据进行编码,从而压缩原始数据。 + +例如对于文本文件,其中各种字符出现的次数如下: + +- a : 10 +- b : 20 +- c : 40 +- d : 80 + +可以将每种字符转换成二进制编码,例如将 a 转换为 00,b 转换为 01,c 转换为 10,d 转换为 11。这是最简单的一种编码方式,没有考虑各个字符的权值(出现频率)。而哈夫曼编码能让出现频率最大的字符编码最短,从而保证最终的编码长度最短。 + +首先生成一颗哈夫曼树,每次生成过程中选取频率最少的两个节点,生成一个新节点作为它们的父节点,并且新节点的频率为两个节点的和。选取频率最少的原因是,生成过程使得先选取的节点在树的最底层,那么需要的编码长度更长,频率更少可以使得总编码长度更少。 + +生成编码时,从根节点出发,向左遍历则添加二进制位 0,向右则添加二进制位 1,直到遍历到根节点,根节点代表的字符的编码就是这个路径编码。 + +

+ +```java +public class Huffman { + + private class Node implements Comparable { + char ch; + int freq; + boolean isLeaf; + Node left, right; + + public Node(char ch, int freq) { + this.ch = ch; + this.freq = freq; + isLeaf = true; + } + + public Node(Node left, Node right, int freq) { + this.left = left; + this.right = right; + this.freq = freq; + isLeaf = false; + } + + @Override + public int compareTo(Node o) { + return this.freq - o.freq; + } + } + + public Map encode(Map frequencyForChar) { + PriorityQueue priorityQueue = new PriorityQueue<>(); + for (Character c : frequencyForChar.keySet()) { + priorityQueue.add(new Node(c, frequencyForChar.get(c))); + } + while (priorityQueue.size() != 1) { + Node node1 = priorityQueue.poll(); + Node node2 = priorityQueue.poll(); + priorityQueue.add(new Node(node1, node2, node1.freq + node2.freq)); + } + return encode(priorityQueue.poll()); + } + + private Map encode(Node root) { + Map encodingForChar = new HashMap<>(); + encode(root, "", encodingForChar); + return encodingForChar; + } + + private void encode(Node node, String encoding, Map encodingForChar) { + if (node.isLeaf) { + encodingForChar.put(node.ch, encoding); + return; + } + encode(node.left, encoding + '0', encodingForChar); + encode(node.right, encoding + '1', encodingForChar); + } +} +``` + # 参考资料 - Sedgewick, Robert, and Kevin Wayne. _Algorithms_. Addison-Wesley Professional, 2011. diff --git a/pics/1c4e8185-8153-46b6-bd5a-288b15feeae6.png b/pics/1c4e8185-8153-46b6-bd5a-288b15feeae6.png new file mode 100644 index 0000000000000000000000000000000000000000..35e992f75a3cfe097552e171dcd719162c0bb11f GIT binary patch literal 6144 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 literal 0 HcmV?d00001 diff --git a/pics/2861e923-4862-4526-881c-15529279d49c.png b/pics/2861e923-4862-4526-881c-15529279d49c.png new file mode 100644 index 0000000000000000000000000000000000000000..6cc26c26bf67e95c5a3c0fc827d49e52f6e5162e GIT binary patch literal 6144 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 literal 0 HcmV?d00001 diff --git a/pics/54f1e052-0596-4b5e-833c-e80d75bf3f9b.png b/pics/54f1e052-0596-4b5e-833c-e80d75bf3f9b.png new file mode 100644 index 0000000000000000000000000000000000000000..ad60a7e02cbc81f8eed19ccd5b47dfd2b0ce8554 GIT binary patch literal 6144 zcmeHLYg7|w8lG${vKokN+vQqDk7&1LA$TJyBq`PcQIW2$L>3{jx&&_oY9&}m!hyBu zBBX*4x*T9#K&n^*-nhhMpa{|8Wx)$z2&u#f5fTiJB!tY&##ZXAd-|j2^lZ<%{P<4J z%=c#I`QFR(KJy;=aATO$9FI8w05~zj*KPuUUvU6{;N$3EzjJt9F4g`+*uN=k4N!Z- zOK-oJ#SMuF0f2h(T-)~7?AO0e3Xk3o0M2dC7D37Tawh=18N*x~^2gLTgSxe*Y)J6X zG?`s_{@q6RFRr+6h;jSu!+7dj39R_v?7MW1T6p)K&-%GpZp`_sNIMG;t^J+9V@Rfa z?t-~~mG7NByk@?y`=WU;NxIU!>ax6S;sIR(%E$CWM9qc!G>C3Kl%*F%13>R_f&);u zgh&E7I~?4AmJU(?kdf=o0RYcsEdUT0pFsfjUIU0gZ}ES_(2~za$0clLfEx#Ryl7YO zip*Akm_cD`Pq~mB+-ka&6)xAp8*V%1f8v|V3250`NcYa=gf>@&eqI@~YgQJa<1}na zn6<3iZ$+k$dfh@dQb1IdIBa3@vBXm@KKdw+R!&C!yMkbk)}x=S&z;X~=yr4<9^InX zb~(mZ#_XQOY%UD7zxvENP#hYtP`znkc=uP!?GScsv8FE1bk`Sogybhy%|My)%1o}z zRM1c6mDvya&T%{2vdI!v1CIg<;4aoct|wKI-_58|t7UvP76n=FNb`g==h#oLO><2z zA@%8_J0B0-DAjdWt?xWE*A?c%cVl>d3`;9HPsntR#@jX?7>V+7T`geP?vusB2^fU>p_B-_UEp53W z#>3)fl==}zZQ(O!-?h6s+Ry6{K87OCDFs#l2F+G_C@!0(WDNkaVeMrbr~BxAeE8Yj}&>;;zCSJdh+nPcEO1z zI%?5YunXQV^gcJ;?o)ucOR4qSAfccs)%1~<>z{b$l2}>FzRAHHO5RJ!PdI3W_2ZB4 zx9KJfDk+wukT!c#6Vn$}iK1jdeBRR*Dhzziy;k1<2(R2j9rQ<_W>Mr&XLH-N(U#w?I{%HT$=JVSclS0yZ zgT^kMOP}cDhKZI;e1I$Pjzo3yo1nnJVo%-cDJn-s?G`I0LU0zJl`%x<+t|YqDI`32 zaO_cbXLgUGn%X}bv#E6;st=N8_gJRVM`ARqt)2Dc?j3ihWnduujGUCnIG&tnk1!Nc zDn%8s6t*JRI$}DB%fx-d1M)N_dFqZ?+D`a8Rim*Pu$5>K?cn%>VX3mD2zSO4YSBKb z_XN3CK&7LfK0y%7rcsKjZ!$33%ccv6qXA1>CN|>_MXGDN0;nSOOZH5wOV6b(&I^fq z8F)BXfS{wKI^;O+y)zH{={`F#WgY_=qbv>dTTmpQM2!%Jm^AvU1#gFmXanbQtl~ry z+ANms(D-$}1jKCSWMKIEQ%X4!-vqNn2W)(68;B;sJ=%!%xX$v=P6uHya?tPyu;O&8Njre_ia|LFEku3%|XfLEvfz&06#CnLAE_k3m_owu80F%9ZO= zu=w#G>hu|gm+JJD`zjKhw9}RW!Cp5+>9J!e74Xf~k?N-X+=Gw5Z5_{H+XjbsC*YhH zRAuKWxo|7xIZIi|D)l#Zy(RWPd=4itf~sN~65GR~tm1oWXRhQ$EvC%5Sl}yT z_@yn)IG)|u3f$V@u$6`5w|Cq)f4d5d;Jx@7ald5waH6C1>mOL=B#vc1%2)Io15>C=jeq6` z$vg-5;^U%!c)dhPJ`E4SCM5{Qx^R!-vSuA6?$Xv;Hl)~gDRl|`?00!{VNXvHMPV5n z{_Dyd94j(z-Kvh1WRpSv2A)QUurHPlCH6O(3Xh}FL#L)ilE4?n!F}~L(*M$s3Ek{e z2a8DgKD$a*ZqH!mS4Ir}g|L{JA9&<-hhiV*J)ezk9Q$U$FS2PW-))~JjuL;7VdL$y kHW8P3`Gh6Z>ka$t6<~g_ac%7yPUg?Tlr#1Je>hJ47iUb{;{X5v literal 0 HcmV?d00001 diff --git a/pics/8587132a-021d-4f1f-a8ec-5a9daa7157a7.png b/pics/8587132a-021d-4f1f-a8ec-5a9daa7157a7.png new file mode 100644 index 0000000000000000000000000000000000000000..f77ff34664c119d2714e1306b4c544f2c6384060 GIT binary patch literal 6144 zcmeHLdsLI>8UN^^18-ckXWRlAg3}eN2(-w}6j2~JVWpiJ69OtoVFGfIpdpE+UC~0g zL<5}{GEbmjsmYW8!UH@-7;G>k@UeGr##VcDxN;=VmJ%JnOzTsq3VDf0_N7?seW3NtK_Z zJ8!8OyX)%|zO-J0y<3R-N;FM8F4t;rV;8XNrb|x`+3kEbH4gwSyBGlQMWr8bcC&ab z@aMaoZvfi@UQ^fEEr#d8;A!7p(=KUivRvOStIdD&ZyWjk*|t97>|N3$AKM1<-+8yp zR~YBx>V~O6J4X3@S(|&^*;jhV-8AX3_9p`|JK7*2AZIx;M~-rO)L1WEAnhZ3hIR_iLY5G)Oa zDXuttwv|?ztr?-gxf)1_nk!U2heZOT4AWDf({eN-JdgHv`8H0*jm(oauNJh=iAU|31`6(iR6eV8eBh2q)dVnl^E7ngwqUNw&O?VmFM-K<8wY z<*C_~trZ!`IWhloR_<7T0Hedl(v}_K*`sb4L9K|fN~%uO=byS+*(!_8!>p3Cj)BhZ z-*Lx^8!eBYk({z!oE^p&jJ;xL=VSql9d-Hbp8qH2F~(C##veTSbi8N9J_6SBC#+}ZQYR6&H^=z`nn zWqdz$1bR;$Tu`u6FVN1=tE-q&|D318LTSRF*_d1Gd@)x}4i}|3vPx5`PI=JYZp$qRp&<>=EjEnVPIP|Cl zVSc2U?T1oFXyFBVl)e#}n012Ww-wh0UW*EZy7Yh0qi`sgFK?nFXDN6kiu4z~T+;)e z{OD>aY6?=bs=*Mi@}NpH$m)W`aWqyG5(7OZEE~s3AYSJw!!JDPRkC>Wy3ao_0}SnW zvh+pqjQBo{&H5H)5Tj_s1e`(?0jWzyS6+;>Bb9yxkpm&QYc5B1m84~jD5OTs6zZQN z?pN0g)#f*u9*UCKz7`Wg`=R!R#&D_bZkT$X4RkZM8SJG9H%xYVa!S>TZHqpQh3U!H zYx7TqtZefWU!=|x!vrCnRIE0vi&5HKT(1;Kic&>-&EdnVkDc@<_FAua*QYVOev z$}>UTu~OTn3+muoAoT)!V(Q_wU5t)bS7r{APwgCw#~CSMgeN^pRUkVPgrD^xeN6%5 zq4x;ssyE8!^JX5pVgz?PyAfs~;M-f`Yz3F>(d>Aor~!LgLKXXkZigOo$URF5Qz6C% zxe0#^GG$AXIc^VBx9T+t1(v9l2&sOUcx0%Q*$z_abh?m-B$bx#FYl+Z9YOfCf-W3m z5|>nX-3SdTvYfw3BNqyUU4@yr7tbG*lMZP&*OT6K}vAkj=3I^)WBpebGnS2B{( zlt$_9fli7qdL+Lte+!!Om3X^2j^cZem&B#|qAyjoRr;YRL7tgz7>aLJ=uiN|7tJqv zO%pF8O(J6Xo!66Eev0=oc5^PuZ}YNsR>1`{Va9_NJ9t^WU2PKXqO7Kav0c E0BmZ1HUIzs literal 0 HcmV?d00001