There are several reasons that may compel you to design an ASIC. If the algorithm can't run in real-time on the proposed hardware. Reduced hardware requirements of various resources (ram, clock-speed, etc.). Just don't do it because it sounds like a good idea.
I've created dozens of ASICs over my career and there are things you need to consider before doing it.
* Choosing the technology. You want to pick a process that meets your needs (with an engineering margin) at the lowest cost.
* Will the algorithm change over time needing a hardware change?
* Are you prepared to fix your design if it doesn't work the first iteration? There are a significant number of things that can go wrong.
* Do you have ample knowledge of how to test for processing defects so you don't end up shipping broken parts? Testing for defects is different than testing for functionality. You'll also have to learn the needs of the test equipment to design test patterns (test periods, clock cycles, strobes, etc.).
* Is your algorithm amenable to conversion? A direct translation may require resources that don't make sense (take up too much real estate or require components that don't mix well with the chosen technology).
I remember a project, I think called MOSIS, created for Universities. It allows your design to be placed along side of others on the same wafer/cookie to share the expense for low volume projects.
I wouldn't discourage looking into the process, but I expect that you will find it an eye-opening experience.