Algorithm analysis and problem complexity