| ▲ | momojo 4 hours ago |
| Do you have any examples of the second class? |
|
| ▲ | zellyn 4 hours ago | parent | next [-] |
| The one that comes to mind is how big your hash maps have to get before all the clever algorithms beat linear scan, and it's surprisingly large on modern computers: linear memory access is _very_ predictable. The Roc and Zig folks probably have actual numbers. |
| |
| ▲ | tshaddox 3 hours ago | parent [-] | | What are these surprisingly large numbers you've seen? I thought that linear scan optimizations are typically reserved for pretty small maps, like dozens or maybe hundreds of elements. | | |
| ▲ | inigyou an hour ago | parent [-] | | Hundreds sounds about right, maybe up to a thousand. But nobody expects that. Hashmap is supposed to be faster once you have, like, ten elements. That's what was promised to us. | | |
| ▲ | zellyn an hour ago | parent [-] | | Yeah, I found hundreds surprising (although not on reflection). |
|
|
|
|
| ▲ | mrkeen 4 hours ago | parent | prev | next [-] |
| Not sure if this counts, but I learned Huffman coding the intuitive tree-based way. From memory it was O(nlogn), but you can just O(n) it in-place in an array. |
| |
| ▲ | inigyou an hour ago | parent [-] | | Huffman decoding you mean. All the fast decoders build tables processing N (8, 16, ...) bits at a time. If the next byte is 253 in state 6 that means output 15,28,28 and go to state 42... There are probably even faster ways I don't know of. |
|
|
| ▲ | jvanderbot 3 hours ago | parent | prev [-] |
| [dead] |