• Use a faster algorithm. Replacing an O(n^2) algorithm with an O(n) algorithm is faster than anything else. See https://en.wikipedia.org/wiki/Big_O_notation.
• Avoid concatenating long strings. 100s of characters is OK; 1,000,000s of characters will be slow if you build the string in 1,000,000s of operations.
• Use numeric arrays (matrices, not lists).
– Use numeric arrays with operators that operate on the entire array.
– Avoid writing loops to manipulate numeric arrays.
• Use associative arrays for lookups.