As I read some algorithms textbooks, they are full of clever procedures for some problems (sorting, shortest path) or some general methods (recursive algorithms, divide and conquer, dynamic programming...). I found few traces of object oriented programming there; (Why they are more procedure-oriented?).
Then I was thinking:
- What is the relation between algorithms and OOP? Are they two independent topics?
- Are there some problems which can only be presented and solved by OOP?
- How can OOP help algorithms? Or in which direction it can affect it?
I have read some questions may sound similar; but I am not trying to know which is more important or into which I should invest. If I just realize their distinction I can direct my efforts to the field which I am more interested in or need more.
The answer to the first and second question could be just a "yes" or "no", or the answer for the third question could be "in no way"; so I get sure they are really disparate things or not?!.
However, I like to someway link them to each other; I have studied some OOP books and some algorithms books; if I know where they meet each other, I can better link and use my knowledge on both of them.
For example if we master OOP does it help us to find an algorithm sooner?
[maybe not but OOP facilitate the implementation of our algorithm and express it in a language near to our natural language it is what I get from current answers]