I\'m looking for an intuitive, real-world example of a problem that takes (worst case) exponential time complexity to solve for a talk I am giving.
Here are examples for
What about finding a subset of integers within a set such that their sum is a designated value X?
I believe this has complexity O(2^(n/2))
p.s. why is your last example is of complexity O(infinity) ? it's linear search O(N) .. there are less than 7 billion people in the world.
A pizza restaurant has several toppings to choose from
Customers may choose any combination of toppings or none at all for their pizza. Now consider an algorithm that finds every possible unique combination of toppings. This is an exponential algorithm with time complexity O(2^n).
Look how the possible combinations grow (exponentially) when you add a new topping to the menu:
0 toppings: 1 combination (no toppings at all)
1 toppings: 2 combinations (none, a)
2 toppings: 4 combinations (none, a, b, ab)
3 toppings: 8 combinations (none, a, b, c, ab, ac, bc, abc)
...
...
10 toppings: 1,024 combinations
20 toppings: 1,048,576 combinations
So with just 20 types of toppings, there are over 1 million possible combinations!
A brute-force and naive n-queens problem's solution.
You have to place n queens on a n*n board without them to be taken by others.
while there are untried configs,
go to next solution and
test it
Assuming every queen is on a given row, there are n possibilities for the queen to be placed and n for the (n-1) other queens (because duplicate rows are not checked).
Therefore, you've got a O(n^n) complexity
The brute force solution of the traveling salesman problem is O(n!) which is approximately O(N^N)