Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
9
Task/LZW-compression/AWK/lzw-compression-1.awk
Normal file
9
Task/LZW-compression/AWK/lzw-compression-1.awk
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
==comp
|
||||
TOBEORNOTTOBEORTOBEORNOT
|
||||
To be or not to be that is the question!
|
||||
"There is nothing permanent except change." --- Heraclitus [540 -- 475 BCE]
|
||||
|
||||
==decomp
|
||||
84,79,66,69,79,82,78,79,84,256,258,260,265,259,261,263
|
||||
84,111,32,98,101,32,111,114,32,110,111,116,32,116,257,259,268,104,97,267,105,115,272,260,113,117,101,115,116,105,111,110,33
|
||||
34,84,104,101,114,101,32,105,115,32,110,111,116,104,105,110,103,32,112,259,109,97,110,101,110,116,32,101,120,99,101,112,281,99,104,277,103,101,46,34,32,296,45,298,296,32,72,259,97,99,108,105,116,117,264,32,91,53,52,48,32,299,52,55,53,32,66,67,69,93
|
||||
73
Task/LZW-compression/AWK/lzw-compression-2.awk
Normal file
73
Task/LZW-compression/AWK/lzw-compression-2.awk
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
# ported from Python
|
||||
BEGIN {
|
||||
is_comp = 0
|
||||
is_decomp = 0
|
||||
}
|
||||
|
||||
{
|
||||
if ($0 == "") next
|
||||
|
||||
if ($1 == "==comp") {
|
||||
is_comp = 1
|
||||
is_decomp = 0
|
||||
print "\ncompressing..."
|
||||
next
|
||||
}
|
||||
|
||||
if ($1 == "==decomp") {
|
||||
is_comp = 0
|
||||
is_decomp = 1
|
||||
print "\ndecompressing..."
|
||||
next
|
||||
}
|
||||
|
||||
if (is_comp) print compress($0)
|
||||
|
||||
if (is_decomp) print decompress($0)
|
||||
}
|
||||
|
||||
function compress(str, dict_size, i, dictionary, w, result, len, uncompressed, c, wc ) {
|
||||
dict_size = 256
|
||||
for (i = 0; i <= dict_size; i++) dictionary[chr(i)] = i
|
||||
|
||||
w = ""
|
||||
result = ""
|
||||
len = split(str, uncompressed, "")
|
||||
for (i = 1; i <= len; i++) {
|
||||
c = uncompressed[i]
|
||||
wc = w c
|
||||
if (wc in dictionary) w = wc
|
||||
else {
|
||||
result = result "," dictionary[w]
|
||||
dictionary[wc] = dict_size++
|
||||
w = c
|
||||
}
|
||||
}
|
||||
if (length(w)) result = result "," dictionary[w]
|
||||
return substr(result,2)
|
||||
return "[" substr(result,2) "]"
|
||||
}
|
||||
|
||||
function decompress(str) {
|
||||
dict_size = 256
|
||||
for (i = 0; i <= dict_size; i++) dictionary[i] = chr(i)
|
||||
|
||||
result = ""
|
||||
len = split(str, compressed, ",")
|
||||
w = chr(compressed[1])
|
||||
result = result w
|
||||
for (i = 2; i <= len; i++) {
|
||||
k = compressed[i]
|
||||
if (k in dictionary) entry = dictionary[k]
|
||||
else if (k == dict_size) entry = w substr(w,1,1)
|
||||
else { entry = "*" }
|
||||
result = result entry
|
||||
dictionary[dict_size++] = w substr(entry,1,1)
|
||||
w = entry
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
function chr(c) {
|
||||
return sprintf("%c", c + 0)
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue