fork download
  1. class DutchNationalFlag {
  2.  
  3. static void dutchFlagSort(int inArray[], int arraySize, int high, int low) {
  4. if (arraySize == 0)
  5. return;
  6.  
  7. int lower = 0;
  8. while (inArray[lower] == low && lower < arraySize)
  9. lower++;
  10.  
  11. int upper = arraySize - 1;
  12. while (inArray[upper] == high && upper >= 0)
  13. upper--;
  14.  
  15. int temp = 0;
  16. int pivot;
  17. for (pivot = lower; pivot <= upper;) {
  18. if (inArray[pivot] == low) {
  19. temp = inArray[pivot];
  20. inArray[pivot] = inArray[lower];
  21. inArray[lower] = temp;
  22. pivot++;
  23. lower++;
  24. } else if (inArray[pivot] == high) {
  25. temp = inArray[pivot];
  26. inArray[pivot] = inArray[upper];
  27. inArray[upper] = temp;
  28. upper--;
  29. } else
  30. pivot++;
  31. }
  32. }
  33.  
  34. public static void main(String[] args) {
  35. int arr [] = {0,1,2,1,2,0,1,1,1,0,0,0,1,0,2,1};
  36. dutchFlagSort(arr, arr.length, 2, 0);
  37.  
  38. for (int i = 0; i < arr.length; i++)
  39. System.out.print(arr[i] + " ");
  40. }
  41. }
  42.  
Success #stdin #stdout 0.07s 380160KB
stdin
Standard input is empty
stdout
0 0 0 0 0 0 1 1 1 1 1 1 1 2 2 2