  One example is this algorithm: on input of a binary string \(\delta\) of length \(4n\), the algorithm breaks the input down into \(n\) blocks of 4, which it turns into an output sequence \(\sigma\), as follows. Given a block \(b_1 , \ldots ,b_4\), it produces a block of the symbol contained in \(b_1\), the length of which is governed by the binary numeral \(b_2 b_3 b_4\). So the block 1101 produces a string of five 1s. The output sequence is obtained by concatenating the output of successive blocks in order.  Every string \(\sigma\) can be represented by this algorithm, since the string \(\sigma '\) which involves replacing every 1 in \(\sigma\) by 1001, and every 0 by 0001, will yield \(\sigma\) when given as input to this algorithm. So this algorithm has finite complexity for any string. But this algorithm can do considerably better; if the original string, for example, is a string of sixteen 1s, it can be obtained by input of this description: 11111111, which is half the length. Indeed, as reflection on this algorithm shows, this algorithm can reconstruct an original string from a shorter description, for many strings, particularly if they contain reasonably long substrings of consecutive 1s or 0s.