The study of the amount of time, memory, or other resources necessary to solve a specific problem algorithmically.