diff --git a/Esiur.Analysis.Test/Program.cs b/Esiur.Analysis.Test/Program.cs index d7f139d..9f4c10f 100644 --- a/Esiur.Analysis.Test/Program.cs +++ b/Esiur.Analysis.Test/Program.cs @@ -48,26 +48,7 @@ namespace Esiur.Analysis.Test { - var graph = new DirectedGraph(); - var n1 = graph.AddNode(1, "1", 10, 10); - var n2 = graph.AddNode(2, "2", 20, 10); - - graph.Link(n1, n2, 0.5, "1->2"); - graph.Link(n1, n1, 0.5, "1->1"); - - graph.Link(n2, n1, 0.2, "2->1"); - graph.Link(n2, n2, 0.8, "2->2"); - - - var matrix = new Matrix(new double[,] { { 0.5, 0.5 }, { 0.2, 0.8 } }); - - var m = matrix; - for(var i = 0; i < 3; i++) - { - m = m * m; - Console.WriteLine(m); - } var msg = Encoding.ASCII.GetBytes("A_DEAD_DAD_CEDED_A_BAD_BABE_A_BEADED_ABACA_BED").Select(x => CodeWord.FromByte(x)).ToArray();// ()); diff --git a/Esiur.Analysis/Coding/Huffman.cs b/Esiur.Analysis/Coding/Huffman.cs index 55029be..a1ff33c 100644 --- a/Esiur.Analysis/Coding/Huffman.cs +++ b/Esiur.Analysis/Coding/Huffman.cs @@ -160,7 +160,8 @@ namespace Esiur.Analysis.Coding decision[0].Parent = branch; decision[1].Parent = branch; - nodes = nodes.Skip(2).Append(branch).OrderBy(x => x.Frequency).ToList(); + // remove processed branches, append the new branch and sort by probability + nodes = nodes.Skip(CodeSet.ElementsCount).Append(branch).OrderBy(x => x.Frequency).ToList(); } // create tree