Looks like you could approximate the points with a 3D-curve-fitting algorithm then sort the particles on their (with closest perpendicular) distance to the curve (based on the parametric curve's time dimension). So the first particle is closest one to t=0 while the last particle is the closest to t=t_end.
Imagine the rope (fitted curve) is made of segments. On every increment of t, you move to next segment, a plane that is perpendicular to the point that curve passes through. Then check the angle & distance to reach the point lying on that plane.
You can also divide the rope on t-dimension in hierarchical order like Kd-tree but just on 1-dimension(t) to access neighbors faster without sorting.

If all points are very close to the curve, you can even reduce the precision of distance data (t=32bits,angle=32bits,distance=16bits) without losing real coordinates, to increase cache-hits because less data makes more space for other data & t variable.
If all points are ordered well enough such that the curve passes right through them, then you don't even need the angle variable. Just t-data is enough. Only 32 bits = higher cache-hit ratio if the sorting was meant to use the cache better.
If rope is never touching itself with a minimum distance, then you can just create bonds between minimum-distance pairs of points as mass-spring systems. Then do a physics simulation:
- make the rope fall through air
- air resistance will make its two ends move higher than its middle points
- pick one of those highest points as a starting point
- stop the gravity or wind
- create a pulse / wave from that point
- the wave will travel through the rope
- check timings of all points when wave passes through them
- sort the points on their timings