4.3. Perhitungan Kompleksitas Waktu
Perhitungan Kompleksitas waktu dieperlukan untuk melihat waktu yang diperlukan komputer untuk memproses data.
4.3.1. Perhitungan Kompleksitas Waktu Algoritma Huffman Berikut adalah tabel perhitungan kompleksitas waktu untuk algoritma Huffman dapat
dilihat pada tabel 4.3. berikut.
Tabel 4.3. Perhitungan Kompleksitas Waktu Algoritma Huffman a. Kompresi
No Code
C C
1.
Public Function CompressByteArray
ByVal Data
As Byte As Byte
C1 1
C1n 2.
Dim P
As Long =
FindProbabilitiesForSymbolsData
C2 n
C2n 3.
Dim NodeList0
To 255
As BinaryTreeNode
C2 n
C2n 4.
Dim NodeListUsed
As Integer = 0
C2 n
C2n 5.
Dim Node
As BinaryTreeNode
C2 n
C2n 6.
Dim I
As Integer
C2 n
C2n 7.
For I = 0
To 255
C3 n
C3n 8.
If PI 0
Then
C4 n
C4n 9.
Node = New
BinaryTreeNode
C5 n
C5n 10.
Node.Symbol = I
C5 n
C5n 11.
Node.Probability = PI
C5 n
C5n 12.
Node.RightNode = Nothing
C5 n
C5n 13.
Node.LeftNode = Nothing
C5 n
C5n 14.
NodeListNodeListUsed = Node
C5 n
C5n 15.
NodeListUsed += 1 End If
Next
C5 n
C5n 16.
Do While NodeListUsed 1
C6 n
C6n 17.
Dim MinLoc1
As Integer
C2 n
C2n 18.
Dim MinLoc2
As Integer
C2 n
C2n 19.
Dim N1
As BinaryTreeNode
C2 n
C2n 20.
Dim N2
As BinaryTreeNode
C2 n
C2n 21.
MinLoc1 = 0
C5 n
C5n 22.
For I = 1
To NodeListUsed - 1
C3 n
C3n 23.
If NodeListI.Probability
NodeListMinLoc1.Probability Then
C4 n
C4n
Universitas Sumatera Utara
24.
MinLoc1 = I End If
Next
C5 n
C5n 25.
N1 = NodeListMinLoc1
C5 n
C5n 26.
For I = MinLoc1
To NodeListUsed - 2
C3 n
C3n 27.
NodeListI = NodeListI + 1 Next
C5 n
C5n 28.
NodeListUsed -= 1
C5 n
C5n 29.
MinLoc2 = 0
C5 n
C5n 30.
For I = 1
To NodeListUsed - 1
C3 n
C3n 31.
If NodeListI.Probability
NodeListMinLoc2.Probability Then
C4 n
C4n 32.
MinLoc2 = I End If
Next
C5 n
C5n 33.
N2 = NodeListMinLoc2
C5 n
C5n 34.
For I = MinLoc2
To NodeListUsed - 2
C3 n
C3n
35.
NodeListI = NodeListI + 1 Next
NodeListUsed -= 1 Node =
New BinaryTreeNode
Node.Probability = N1.Probability + N2.Probability
Node.LeftNode = N1 Node.RightNode = N2
Node.Symbol = -1 NodeListNodeListUsed = Node
NodeListUsed += 1 Loop
C5 n
C5n
36.
Dim SymbolCodes
As Collection
= GetSymbolCodesNodeList0,
C2 n
C2n 37.
Dim SYM0
To 255
As String
C2 n
C2n 38.
Dim I2
As Integer
C2 n
C2n 39.
For I = 0
To 255
C3 n
C3n 40.
For I2 = 1
To SymbolCodes.Count
Step 2
C3 n
C3n
41.
If SymbolCodesI2 = I
Then SYMI = SymbolCodesI2 + 1
End If Next
Next
C4 n
C4n
42.
Dim BA
As New bitsarray
C2 n
C2n 43.
Node = NodeList0
C5 n
C5n 44.
I = 0
C5 n
C5n
Universitas Sumatera Utara
45.
BA.AddBitsData.Length, 32 BA.AddBitsSymbolCodes.Count \ 2, 8
StoreTreeNode, BA
C6 n
C6n 46.
For I = 0
To Data.Length - 1
C3 n
C3n 47.
For I2 = 0
To SYMDataI.Length - 1
C3 n
C3n 48.
BA.AddBitSYMDataI.SubstringI2, 1 Next
Next
C6 n
C6n
49.
BA.FlushBuffer Return
BA.GetBitsArray End Function
C6 n
C6n
b. Dekompresi