fork download
  1. import java.util.*;
  2. import java.lang.*;
  3. import java.io.*;
  4.  
  5. class Ideone
  6. {
  7. // driftsort in ascending-order
  8. public static int[] D(int[]i)
  9. {
  10. int x = -1,z = -1;
  11. int[] d = new int[i.length];
  12.  
  13. while ((++x) < i.length)
  14. {
  15. if (i[x] > i[(x+1)%i.length])
  16. {
  17. if(z<0) z = (x+1)%i.length;
  18. else return null; // not driftsortable
  19. }
  20. }
  21.  
  22. if(z < 0) z = 0;
  23. x = -1;
  24. while ((++x) < d.length)
  25. {
  26. d[x] = i[(z++)%i.length];
  27. }
  28.  
  29. return d;
  30. }
  31.  
  32. public static void main (String[] args) throws java.lang.Exception
  33. {
  34. int[] test = { 75, 230, 30, 42, 50 };
  35. for(Integer n : test) System.out.print(n+" ");
  36. System.out.println();
  37.  
  38. int[] result = D(test);
  39. for(Integer n : result) System.out.print(n+" ");
  40. System.out.println();
  41. }
  42. }
  43.  
  44.  
Success #stdin #stdout 0.1s 320512KB
stdin
Standard input is empty
stdout
75 230 30 42 50 
30 42 50 75 230