As I understand it the nature of data access (sequential or random) will determine the optimal algorithm/data structure to use when manipulating data.

What other assumptions need to be checked before selecting an algorithm or data structure for the manipulation of data?

  • 2
    $\begingroup$ This question is very, very broad. "I know that houses have either tiles or shingles. Which other criteria are important when designing a house?" I suggest you narrow it down considerably. (Community votes, please: is this too broad?) $\endgroup$ – Raphael Nov 16 '15 at 17:38

You can categorize data structures by their need of memory or processing power. Each rated for writing or reading purpose. Some data structures are optimized for searching, some only for fast storing.

Ask yourself how many data you're going to store. If it's a lot, you have to choose the right algorithm, if not it doesn't really matter.

Another question could be, do you need a growing data structure or just a ring buffer for example.

Regarding data manipulation with algorithms, there is a bunch of considerations to make. With growing data, how much does memory usage, processing power, external storage capacity and access times grow? The big O notation would be a term to refer to. Here too, it's important if your 'manipulation' is reading, searching or writing?

You will find an algorithm or a data structure out there for every use case.


Not the answer you're looking for? Browse other questions tagged or ask your own question.