Take the 2-minute tour ×
Writers Stack Exchange is a question and answer site for authors, editors, reviewers, professional writers, and aspiring writers. It's 100% free, no registration required.

I am writing about algorithms in a paper and I wonder how to best express increasing the speed of an algorithm. Is it clear when I write "The performance increased by doing X" or can this be ambigious, as performance can also be measured in the quality of the output? "The algorithm has been sped up" sounds somehow strange and informal to me but I'm not a native speaker.

P.S.: If the algorithm is both faster and the output has a higher quality, can I write "The performance has been increased both qualitatively and quantitatively" or is it not clear that quantitatively relates to the speed? How to rephrase that?

share|improve this question

2 Answers 2

up vote 3 down vote accepted

I can't comment. Sorry about this, I had a question, but... I'll have to make it into an answer.

It sounds like you want to use Big O notation, which is helpful when talking about algorithmic efficiency. In which case, Big O Notation might be the best bet for you right now. I was going to comment to ask if your problem could be solved with this, but just in case the answer to that is no, here's a less technical answer.

If you're trying to talk about a specific resource (time, manpower, etc. etc.) then you need to state what that resource is instead of saying "performance" (because like you said, it does get confusing). For example, say your algorithm uses less time if you give it a sorted list of items to parse through. Then you can say:

The time taken for X_algorithm to run is decreased when the list is sorted.

And if the decreased time is significant, you could say:

The time taken for X_algorithm to run is greatly decreased when the list is sorted.

If, by changing the algorithm slightly, the end product turns out to be better quality because of the changes made, you might say:

Not only does sorting the list of inputs shorten the runtime, but X_algorithm also produces more relevant results.

That way you're talking about both things that have increased in quality.

Going back to what I wanted to ask in a comment, your last question is what made me think about using Big O notation. If you want to talk about performance in general, I'd suggest talking in terms of Big O, unless there was no large, sweeping change. (Big O is used for algorithm efficiency like I said, but it characterizes things based on growth rates.) For example if by changing your algorithm you change it's growth rate from logarithmic (O(log n)) to quadratic (O(n^2)), that would be more useful to the reader than saying that the performance changed qualitatively and quantitatively. But if the change to the algorithm doesn't significantly change the notation... then the above answer is the best bet. Also, if the paper is non-technical you wouldn't use Big O Notation, since it's a little complicated to understand for most people. So, it depends a lot on your reader too. The paper sounds like it's supposed to be technical though? But I'm just hazarding a guess.

If you don't know (or can't use) Big O Notation, my only real helpful comment is to stay away from the word "performance" because it's too general. Since performance is something that varies depending on what aspect of the algorithm you look at, you either need to define performance as "time taken for the algorithm to run/algorithm speed" beforehand or constantly mention that the performance has to do with speed. But if you just say "the performance increased when XXYY" then the reader can assume the performance is anything-- the quality of the answer, the time taken, the space used in memory-- and increased performance could take on different meanings with different contexts.

Finally, if both the runtime and the output have become better quality, "quantitative" doesn't necessarily evoke the meaning you think. Even making up a word like "speedwise" to put into that sentence could explain what you're thinking better. (But don't make up words, though.) It could be clarified by saying something along the lines of:

Because the runtime has changed, the quality of the output is more/less relevant.

Or:

When we change the time it takes for the algorithm to run, we also see a change in the quality of the output.

If you define performance beforehand, though, you could just say something like:

The performance and the end product have both increased in quality.

share|improve this answer

You are correct, "performance" is ambiguous. You could simply say:

the algorithm is faster (than the old one)

but you probably want to indicate by how much its speed has increased:

the new algorithm is n% faster than the reference version.

If you have more than one number (n% for problems of class X, m% for problems of class Y), you should present the results in a table. Sentences stuffed with numbers are difficult to read and can lead to misinterpretation.

The performance has been increased both qualitatively and quantitatively

You could rephrase this as:

The algoritm is faster and produces better-quality output.

That still leaves unsaid what the quality of the output constitutes. How do you decide if the quality is good or bad? Make this explicit:

The algoritm produces output that conforms to our mathematical model with an error of less than .00001%

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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