Last year, Google reported that they changed their algorithm more than 500 times.
How long SEO takes to provide results depends completely on the effort put into it and a little luck. If you create a couple of blog posts that go viral, you could see results in less than a week across the board. If you are entering a really competitive market, you could be looking at a 2 year battle (assuming you approach it the right way), some markets will prove to be nothing more than a huge waste of time because the people who have a head start are promoting their sites better than you will be coming into the game.
Just like everything else in life, it is all relative.