Mathematics. In my experience, ability to program complex algos comes from the complexity of your maths background. Find a way to do more maths and you'll get better at algos. (abstract/logic maths, not just simple number crunching).
Also, building "pet" projects helps, since you'll know exactly what you want as an end product of an algo.
Also, building "pet" projects helps, since you'll know exactly what you want as an end product of an algo.