# How to evaluate and compare the performance of algorithms in practice?

Let $A$ be a heuristic algorithm for problem $Q$. I want to evaluate the performance of my algorithm in a specific practical environment and compare it to other algorithms. Is there a rigorous framework for comparison of algorithms in practice?

One method to evaluate the performance and compare it with other algorithms is to run them on randomly generated inputs from a distribution (based on actual inputs or a theoretical model of inputs) and measure the average running time of the algorithms. However I want to be able to express that one algorithm is better than other one in stronger sense than just having better expected running time.

What do people use for to express stronger conditions? Would standard deviation be a useful for this purpose? What is the best way to measure the confidence level of the performance?

Are the any references (books/surveys/tutorials/...) on how to compare the performance of algorithms in practice?

• Your question does not appear to be a research-level question in theoretical computer science. For more information about the scope, please see help center. Your question might be suitable for Computer Science which has a broader scope. If you post your question there, make sure to follow the cross-posting guidelines of both sites. – chazisop Nov 27 '15 at 5:48
• @chazisop, I think this is a good and on-topic question. There are many problems that we only have heuristics (or heuristics perform better than non-heuristic algorithms or algorithms with worst theoretical analysis perform better than those with better theoretical analysis). – Kaveh Nov 28 '15 at 0:45
• Yes and no. The edited question is a well-known question in heuristics research AFAIK, but on the other hand it is too broad (essentially it is the starting point for a large body of research). But imho the edit is far in meaning and intent from the original question which while had the merit to be narrow, was simply asking on how to measure the expected running time of a scheduling algorithm on random inputs, which is a standard topic. – chazisop Nov 29 '15 at 1:29
• try putting the science back in CS by sedgewick. it is slightly controversial whether theoretical CS includes empirical/ experimental aspects. see eg theory without experiments: have we gone to far? by Mitzenmacher / CACM. – vzn Nov 30 '15 at 18:00