What does it mean to be efficient? Our ultimate answer will be that an algorithm is efficient if its worst-case running time on input size nnn is O(nd)O(n^d)O(nd) for some constant ddd. But it will take us several steps to build up to that definition.