A simple algorithm would be to:
- Calculate the plane on which the triangle lies.
- Find the intersection between this plane and the cube (if any).
- If there is no intersection then the problem is solved.
- Otherwise, find the straight line which runs through each of the triangles edges.
- For each line: If the intersection is on the "outside" then there is no intersection.
- Otherwise there is an intersection.
If your criteria for the "best" algorithm is simplicity, then this would be a good one. If your looking for performance, there are probably some faster ones out there.
You could also try looking at the code hosted at:
http://fileadmin.cs.lth.se/cs/Personal/Tomas_Akenine-Moller/code/