I've written out all the steps I took, but I'm sure it could be easily generalized into an algorithm. I'm also on mobile, so hopefully spoilers worked.
! Split the balls into groups of 3 and weigh each. You now have 5 ordered sets of balls. We can call the lightest of each "A", the middle one "B", and the heaviest "C".
! ABC,ABC,ABC,ABC,ABC. 5 weighings, balls found: none.
! (Throughout this puzzle, any sequential symbols without a comma separating them are ordered. So A is lighter than B, which is lighter than C.)
! Weigh 3 A's, and make the new ordered set DEF.
! DEF,BC,BC,BC,ABC,ABC. 6 weighings, balls found: none.
! Weigh DAA to find the lightest of the balls and place it aside. The new ordered set will be GH, and we can be sure that neither G nor H is the heaviest, since they were selected from all the A's - the lightest balls.
! GH, EF, BC, BC, BC, BC, BC. 7 weighings, balls found: 1.
! Now let's rinse and repeat with the C's. Weigh 3 C's, and make the new ordered set IJK.
! IJK, IJ, GH, EF, B, B, B, BC, BC. 8 weighings, balls found: 1.
! Weigh KCC to find the heaviest of the balls and place it aside. The new ordered set will be LM, and we can be sure that neither L nor M is the lightest, since they were selected from all the C's - the heaviest balls.
! LM, IJ, GH, EF, B, B, B, B, B. 9 weighings, balls found: 1, 15.
! Now let's look for ball 2 and ball 14. M, J, H, and F are disqualified from 2 for being heavier than something, and L, I, G, and E are lighter than something, so they can't be 14.
! Candidates for 2: L, I, G, E, B, B, B, B, B.
! Candidates for 14: M, J, H, F, B, B, B, B, B.
! Let's weigh LIG, and call it NOP. We can also weigh MJH and call it QRS.
! NOP, QRS, EF, B, B, B, B, B. 11 weighings, balls found: 1, 15.
! Candidates for 2: N, E, B, B, B, B, B.
! Candidates for 14: S, F, B, B, B, B, B.
! Not candidates for either: OP, QR.
! Let's weigh N, E and a B, to make TUV. This means we replace one of the B candidates for 14 with V, since that B either is V or was heavier than it.
! TUV, OP, QRS, F, B, B, B, B. 12 weighings, balls found: 1, 15.
! Candidates for 2: T, B, B, B, B.
! Candidates for 14: S, F, V, B, B, B, B.
! Not candidates for either: OP, QR, U.
! Now weighing T and 2 B's (giving us WXY) will give us only three remaining candidates for 2. It'll also knock out one of the remaining candidates for 14, since we're comparing 2 B's.
! WXY, UV, OP, QRS, F, B, B. 13 weighings, balls found: 1, 15.
! Candidates for 2: W, B, B.
! Candidates for 14: S, F, V, Y, B, B.
! Not candidates for either: OP, QR, U, X.
! Now weighing W and 2 B's will find us ball 2and leave us... Z~. It'll also, again, knock out one of the remaining candidates for 14, since we're comparing 2 B's.
! Z~, XY, UV, OP, QRS, F. 14 weighings, balls found: 1, 2, 15.
Candidates for 14: S, F, V, Y, ~.
! Now we can focus on ball 14. Weighing SFV will give us !@#.
! !@#, Z~, XY, U, OP, QR. 15 weighings, balls found: 1, 2, 15.
! Candidates for 14: #, Y, ~.
! Weigh the last three candidates, #Y~, to find ball 14, which we'll remove to leave us $%.
! $%, !@, Z, X, U, OP, QR. 16 weighings, balls found: 1, 2, 14, 15.
! Now our symbols are a mess, so I'm going to rename them quickly back to the beginning of the alphabet. The symbols don't matter as much as the order, so this won't change anything except to make it easier to read.
! AB, CD, E, F, G, HI, JK. 16 weighings, balls found: 1, 2, 14, 15.
! I'll weigh the lonely EFG, since they're only useful when compared to something. Now we can call them LMN.
! LMN, AB, CD, HI, JK. 17 weighings, balls found: 1, 2, 14, 15.
! Then we'll look for balls 3 and 13, in pretty much the same way as we did 2 and 14.
! Candidates for 3: L, A, C, H, J.
! Candidates for 13: N, B, D, I, K.
! Candidates for no one: M.
! Let's get 3 first. Weight LAC and call it OPQ.
! OPQ, MN, B, D, HI, JK. 18 weighings, balls found: 1, 2, 14, 15.
! Candidates for 3: O, H, J.
! Candidates for 13: N, B, D, I, K.
! Candidates for no one: M.
! Weigh OHJ to find 3. Stash it and call the others RS.
! RS, PQ, MN, B, D, I, K. 19 weighings, balls found: 1, 2, 3, 14, 15.
! Candidates for 13: N, B, D, I, K.
! For 13, weigh NBD, call it TUV.
! TUV, RS, PQ, M, I, K. 20 weighings, balls found: 1, 2, 3, 14, 15.
! Candidates for 13: V, I, K.
! Weigh the last 3 candidates, VIK, and the last one is 13. Call the remaining 2 WX. We'll be repeating the process for 4 and 12.
! WX, TU, RS, PQ, M. 21 weighings, balls found: 1, 2, 3, 13, 14, 15.
! Candidates for 4: W, T, R, P, M.
! Candidates for 12: X, U, S, Q, M.
! First we'll weigh RPM and rename them to YZ~. This means we replace one of the M as a candidate for 12 with ~, since that M either is ~ or was heavier than it.
! YZ~, WX, TU, S, Q. 22 weighings, balls found: 1, 2, 3, 13, 14, 15.
! Candidates for 4: W, T, Y.
! Candidates for 12: X, U, S, Q, ~.
! Weigh the last 3 candidates for 4. The lightest is 4, place it aside, we'll call the last 2 !@.
! !@, Z~, X, U, S, Q. 23 weighings, balls found: 1, 2, 3, 4, 13, 14, 15.
! Candidates for 12: X, U, S, Q, ~.
! Weigh XUS, rename the result to #$%.
! #$%, !@, Z~, Q. 24 weighings, balls found: 1, 2, 3, 4, 13, 14, 15.
! Candidates for 12: %, Q, ~.
! Weigh the last 3 candidates for 12. The heaviest is 12, so we can set it aside and call the last 2 ^&.
! ^&, #$, !@, Z. 25 weighings, balls found: 1, 2, 3, 4, 12, 13, 14, 15.
I'll rename them back to the beginning of the alphabet again, then we'll be looking for 5 and 11:
! AB, CD, EF, G. 25 weighings, balls found: 1, 2, 3, 4, 12, 13, 14, 15.
! Candidates for 5: A, C, E, G.
! Candidates for 11: B, D, F, G.
! Weighing ACE -> HIJ gives us:
HIJ, B, D, F, G. 26 weighings, balls found: 1, 2, 3, 4, 12, 13, 14, 15.
! Candidates for 5: H, G.
! Candidates for 11: B, D, F, G.
! Now we'll weigh HGB. The lightest will be 5, and by comparing G and B we've also given ourselves a head start on finding 11. We'll call the remaining 2 balls KL.
! KL, IJ, D, F. 27 weighings, balls found: 1, 2, 3, 4, 5, 12, 13, 14, 15.
! Candidates for 11: D, F, L.
! Weigh the only remaining candidates for 11, and the heaviest will be 11. We'll call the remaining ones MN.
! MN, K, IJ. 28 weighings, balls found: 1, 2, 3, 4, 5, 11, 12, 13, 14, 15.
6 must be M, K, or I. We'll weigh those next, set aside the lightest as 6, and call the remainder OP.
! OP, N, J. 29 weighings, balls found: 1, 2, 3, 4, 5, 6, 11, 12, 13, 14, 15.
! 10 must be P, N, or J. Weigh 'em, bag and tag the heaviest, and call the others QR.
! QR, O. 30 weighings, balls found: 1, 2, 3, 4, 5, 6, 10, 11, 12, 13, 14, 15.
! Only three balls remain, they must be 7, 8, and 9. Weigh QRO to find out the order.
! 31 weighings, balls found: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15.