When I decide to memorize an algorithm I first divide it up into the sections that feel right to me. For example R U R' F' R2 would be divided up into (R U) (R' F') (R2) rather than (R U) (R') (F' R2) which would have a different feel. Groups of moves are performed at a time as one move so the way you divide them up actually does matter (at least with me). After I've divided the algorithm into sections, I then pick the first one or two groups (depending on how long they are) and repeat the moves 20+ times. When I was memorizing the T-Perm for example I started with the first four moves (R U R' U') and repeated them 20+ times. Then after I felt like I had performed the first section enough times, I added the next group of moves (R' F) and performed (R U R' U') (R' F) 30+ times. After I could do all six moves without ever getting stuck or having to think about them I added the next group (R2 U') and performed (R U R' U') (R' F) (R2 U') probably 40+ times. Anyway you get the idea. I just kept adding on sections to what I had already learned until I had memorized the whole algorithm. I then just performed the whole algorithm like 500 or so times until I felt like I had completely mastered it, at least for the moment. I also repeated the algorithm 20 or 30 times right before going to bed which really helps me. When I wake up the next morning I usually have whatever algorithms I memorized in the previous day down pat. Also I've found that it's good to memorize algorithms at a rate of one or two a day depending on how hard or long they are. If I'm learning a rather difficult one, I generally just devote the whole day to that one algorithm. But yeah that's pretty much how I learn them and it seems to work pretty well. TBH the more algorithms you learn the faster you'll get at memorizing new ones because not only does your brain get adjusted to learning algorithms, you also begin to more easily notice patterns in algorithms which makes learning and performing them much easier. Hope this helps!