fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. /* Name of the class has to be "Main" only if the class is public. */
  8. class Ideone
  9. {
  10. public static void main (String[] args) throws java.lang.Exception
  11. {
  12. int[]data = {1,2,5,6,4,7};
  13. prevPermutation(data);
  14. System.out.println(Arrays.toString(data));
  15. }
  16. public static void prevPermutation(int[]data){
  17. for(int i = data.length - 2; i >= 0; i--){
  18. if(data[i] > data[i + 1]){
  19. int index = i + 1;
  20. for(int j = i + 2; j < data.length; j++){
  21. if (data[j] > data[index] && data[j] < data[i]){
  22. index = j;
  23. }
  24. }
  25. int tmp = data[i];
  26. data[i] = data[index];
  27. data[index] = tmp;
  28. sortDescending(data, i + 1, data.length);
  29. break;
  30. }
  31. }
  32.  
  33. }
  34. public static void sortDescending(int[]data, int from, int to){
  35. int l = to - from;
  36. for(int i = 0; i < l/2; i++){
  37. int tmp = data[i + from];
  38. data[i + from] = data[to - i - 1];
  39. data[to - i - 1] = tmp;
  40. }
  41. }
  42. }
Success #stdin #stdout 0.06s 32524KB
stdin
Standard input is empty
stdout
[1, 2, 5, 4, 7, 6]