Since the purpose of this site is to promote learning, it is my opinion that questioners should be required to wait at least 24 hours to give the community time to see and respond to it, thus increasing the quality of the content of the entire site.
I think imposing a mandatory 24-hour delay on "accepting" answers would be a terrible idea.
Firstly, I've no doubt this would significantly increase the number of questions that don't have an accepted answer, which I think would be a bad thing.
Secondly, it stands to reason the OP himself is likely to be one of the least knowledge users interacting with the question (that's why he's asking). Future visitors should pay far more attention to the answer with the highest number of upvotes.
Finally, it's worth noting that the OP can always reassign his acceptance to a different answer later. It's up to those of us who do know with some reasonable level of confidence which answers are good or bad to upvote (and downvote) appropriately.