fork download
  1. function rearrange(values, indexes) {
  2. main_loop:
  3. for (var start = 0, len = indexes.length; start < len; start++) {
  4. var next = indexes[start];
  5. for (; next != start; next = indexes[next])
  6. if (next < start) continue main_loop;
  7.  
  8. next = start;
  9. var prev = start;
  10. var tmp = values[start];
  11. do {
  12. prev = next;
  13. next = indexes[next];
  14. tmp = [values[next], values[next] = tmp][0]; // swap
  15. } while (next != start);
  16. }
  17. return values;
  18. }
  19.  
  20. var vs = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"];
  21. var is = [17,4,8,9,11,19,25,3,10,24,0,6,1,12,7,15,18,22,13,23,2,14,5,16,20,21];
  22.  
  23. print(rearrange(vs, is))
Success #stdin #stdout 0.4s 321920KB
stdin
Standard input is empty
stdout
K,M,U,H,B,W,L,O,C,D,I,E,N,S,V,P,X,A,Q,F,Y,Z,R,T,J,G