views:

139

answers:

4

I believe that out there we have algorithms implementations (e.g. a c++ implementation of a particular sorting algorithm) which might not be as efficient as they could be.

I would like to write a research paper discussing how such an implementation might be improved. This could be in any programming language, however C, C++, Python, Java or anything non-proprietary language would be ideal.

Do you know of any algorithm implementation that you feel might have room for improvement?

A: 

There are plenty of papers that already exist that describe when and where certain sorting algorithms are better/improved. For example: up to a certain point linear search bests quicksort. (Blasphemy I know, but that depends on the order (if know prior to), and small datasets.)

My advice, do the research finding these papers, before you try to invent something new. The probability of your work would either be that you are incorrect or it has already been published. There is a small chance that your work would be new.

monksy
Hi Steven, thank you for taking the time. However, I am not trying to improve the algorithm. I am just attempting to find an implementation that might be flawed from an efficiency perspective.
Gia
A: 

In my experience:

And specifically in MATLAB, you can speed things up by writing C/C++ functions which can be accessed through MEX-functions.

I realize that some of them are proprietary!

Jacob
A: 

Hi Jacob,

Thank you very much for your suggestions. I will research in the areas suggested. I agree that there might be room for improvement when targeting a specific architecture.

Kind Regards, Giammarco

Giammarco Schisani
Not an answer, please post this as a comment to Jacob's answer, then delete this.
Svante
+1  A: 

Jon Bentley has (somewhere) an example of how a traveling-salesman algorithm was increased in performance by a factor of 50 while still keeping the same big-O signature.

In one lecture he said of the academics who were poo-poohing that result that they probably wouldn't mind their salary being improved by a similar factor!

I personally have optimized some programs by factors of 100s without changing their big-O.

Here is an example of optimizing by a factor of about 40, without changing big-O.

You can do this to any program if it hasn't already been done. The bigger it is, the better.

Does that help?

Mike Dunlavey