3 added 40 characters in body
source | link

Java 8, 182 179179 177 bytes

import java.util.*;l->{List r=new VectorStack(),t;for(int p,i,x;l.size()>0;)for(p=l.get(0),r.add(t=new VectorStack()),i=0;i<l.size();p=x)if((x=l.get(i++))>=p)t.add(l.remove(--i));return r;}

-3 bytes thanks to @Nevay.
-2 bytes by using Stack instead of Vector.

Try it here.Try it here.

import java.util.*;             // Required import for List and Vector
l->{                            // Method with ArrayList<Integer> parameter and List return-type
  List r=new VectorStack(),          //  Return-List
       t;                       //  Temp-List
  for(int p,i,x;                //  Some temp integers
      l.size()>0;)              //  Loop (1) as long as there are still items left in the list
    for(p=l.get(0),             //   Set `p` to the first item of the list
        r.add(t=new VectorStack()),  //   Add a new inner List to the result-List
        i=0;i<l.size();         //   Inner loop (2) from 0 to the size of the list (exclusive)
         p=x)                   //     After every iteration, save the previous value in `p`
      if((x=l.get(i++))>=p)     //    If the current item is equal or larger than the previous:
        t.add(l.remove(--i));   //     Add it to the temp-List, and remove it from the input-List
                                //   End of inner loop (2) (implicit / single-line body)
                                //  End of loop (1) (implicit / single-line body)
  return r;                     //  Return result-List
}                               // End of method

Java 8, 182 179 bytes

import java.util.*;l->{List r=new Vector(),t;for(int p,i,x;l.size()>0;)for(p=l.get(0),r.add(t=new Vector()),i=0;i<l.size();p=x)if((x=l.get(i++))>=p)t.add(l.remove(--i));return r;}

-3 bytes thanks to @Nevay.

Try it here.

import java.util.*;             // Required import for List and Vector
l->{                            // Method with ArrayList<Integer> parameter and List return-type
  List r=new Vector(),          //  Return-List
       t;                       //  Temp-List
  for(int p,i,x;                //  Some temp integers
      l.size()>0;)              //  Loop (1) as long as there are still items left in the list
    for(p=l.get(0),             //   Set `p` to the first item of the list
        r.add(t=new Vector()),  //   Add a new inner List to the result-List
        i=0;i<l.size();         //   Inner loop (2) from 0 to the size of the list (exclusive)
         p=x)                   //     After every iteration, save the previous value in `p`
      if((x=l.get(i++))>=p)     //    If the current item is equal or larger than the previous:
        t.add(l.remove(--i));   //     Add it to the temp-List, and remove it from the input-List
                                //   End of inner loop (2) (implicit / single-line body)
                                //  End of loop (1) (implicit / single-line body)
  return r;                     //  Return result-List
}                               // End of method

Java 8, 182 179 177 bytes

import java.util.*;l->{List r=new Stack(),t;for(int p,i,x;l.size()>0;)for(p=l.get(0),r.add(t=new Stack()),i=0;i<l.size();p=x)if((x=l.get(i++))>=p)t.add(l.remove(--i));return r;}

-3 bytes thanks to @Nevay.
-2 bytes by using Stack instead of Vector.

Try it here.

import java.util.*;            // Required import for List and Vector
l->{                           // Method with ArrayList<Integer> parameter and List return-type
  List r=new Stack(),          //  Return-List
       t;                      //  Temp-List
  for(int p,i,x;               //  Some temp integers
      l.size()>0;)             //  Loop (1) as long as there are still items left in the list
    for(p=l.get(0),            //   Set `p` to the first item of the list
        r.add(t=new Stack()),  //   Add a new inner List to the result-List
        i=0;i<l.size();        //   Inner loop (2) from 0 to the size of the list (exclusive)
         p=x)                  //     After every iteration, save the previous value in `p`
      if((x=l.get(i++))>=p)    //    If the current item is equal or larger than the previous:
        t.add(l.remove(--i));  //     Add it to the temp-List, and remove it from the input-List
                               //   End of inner loop (2) (implicit / single-line body)
                               //  End of loop (1) (implicit / single-line body)
  return r;                    //  Return result-List
}                              // End of method
2 -3 bytes
source | link

Java 8, 182182 179 bytes

import java.util.*;l->{List r=new Vector(),t;for(int p,i,x;l.size()>0;){for(p=l.get(0);r,r.add(t=new Vector());for(i=-1;++i<l,i=0;i<l.size();p=x)if((x=l.get(ii++))>=p)t.add(l.remove(i--i));}return;return r;}

-3 bytes thanks to @Nevay.

Try it here.Try it here.

import java.util.*;             // Required import for List and Vector
l->{                            // Method with ArrayList<Integer> parameter and List return-type
  List r=new Vector(),          //  Return-List
       t;                       //  Temp-List
  for(int p,i,x;                //  Some temp integers
      l.size()>0;){              //  Loop (1) as long as there are still items left in the list
    for(p=l.get(0);   ,             //   Set `p` to the first item of the list
        r.add(t=new Vector());   ,  //   Add a new inner List to the result-List
    for(i=-1;++i<l    i=0;i<l.size();         //   Inner loop (2) from 0 to the size of the list (exclusive)
         p=x)                   //     After every iteration, save the previous value in `p`
      if((x=l.get(ii++))>=p)      //    If the current item is equal or larger than the previous:
        t.add(l.remove(i--i));   //     Add it to the temp-List, and remove it from the input-List
                                //   End of inner loop (2) (implicit / single-line body)
  }                              //  End of loop (1) (implicit / single-line body)
  return r;                     //  Return result-List
}                               // End of method

Java 8, 182 bytes

import java.util.*;l->{List r=new Vector(),t;for(int p,i,x;l.size()>0;){p=l.get(0);r.add(t=new Vector());for(i=-1;++i<l.size();p=x)if((x=l.get(i))>=p)t.add(l.remove(i--));}return r;}

Try it here.

import java.util.*;            // Required import for List and Vector
l->{                           // Method with ArrayList<Integer> parameter and List return-type
  List r=new Vector(),         //  Return-List
       t;                      //  Temp-List
  for(int p,i,x;               //  Some temp integers
      l.size()>0;){            //  Loop (1) as long as there are still items left in the list
    p=l.get(0);                //   Set `p` to the first item of the list
    r.add(t=new Vector());     //   Add a new inner List to the result-List
    for(i=-1;++i<l.size();     //   Inner loop (2) from 0 to the size of the list (exclusive)
        p=x)                   //     After every iteration, save the previous value in `p`
      if((x=l.get(i))>=p)      //    If the current item is equal or larger than the previous:
        t.add(l.remove(i--));  //     Add it to the temp-List, and remove it from the input-List
                               //   End of inner loop (2) (implicit / single-line body)
  }                            //  End of loop (1)
  return r;                    //  Return result-List
}                              // End of method

Java 8, 182 179 bytes

import java.util.*;l->{List r=new Vector(),t;for(int p,i,x;l.size()>0;)for(p=l.get(0),r.add(t=new Vector()),i=0;i<l.size();p=x)if((x=l.get(i++))>=p)t.add(l.remove(--i));return r;}

-3 bytes thanks to @Nevay.

Try it here.

import java.util.*;             // Required import for List and Vector
l->{                            // Method with ArrayList<Integer> parameter and List return-type
  List r=new Vector(),          //  Return-List
       t;                       //  Temp-List
  for(int p,i,x;                //  Some temp integers
      l.size()>0;)              //  Loop (1) as long as there are still items left in the list
    for(p=l.get(0),             //   Set `p` to the first item of the list
        r.add(t=new Vector()),  //   Add a new inner List to the result-List
        i=0;i<l.size();         //   Inner loop (2) from 0 to the size of the list (exclusive)
         p=x)                   //     After every iteration, save the previous value in `p`
      if((x=l.get(i++))>=p)     //    If the current item is equal or larger than the previous:
        t.add(l.remove(--i));   //     Add it to the temp-List, and remove it from the input-List
                                //   End of inner loop (2) (implicit / single-line body)
                                //  End of loop (1) (implicit / single-line body)
  return r;                     //  Return result-List
}                               // End of method
1
source | link

Java 8, 182 bytes

import java.util.*;l->{List r=new Vector(),t;for(int p,i,x;l.size()>0;){p=l.get(0);r.add(t=new Vector());for(i=-1;++i<l.size();p=x)if((x=l.get(i))>=p)t.add(l.remove(i--));}return r;}

Explanation:

Try it here.

import java.util.*;            // Required import for List and Vector
l->{                           // Method with ArrayList<Integer> parameter and List return-type
  List r=new Vector(),         //  Return-List
       t;                      //  Temp-List
  for(int p,i,x;               //  Some temp integers
      l.size()>0;){            //  Loop (1) as long as there are still items left in the list
    p=l.get(0);                //   Set `p` to the first item of the list
    r.add(t=new Vector());     //   Add a new inner List to the result-List
    for(i=-1;++i<l.size();     //   Inner loop (2) from 0 to the size of the list (exclusive)
        p=x)                   //     After every iteration, save the previous value in `p`
      if((x=l.get(i))>=p)      //    If the current item is equal or larger than the previous:
        t.add(l.remove(i--));  //     Add it to the temp-List, and remove it from the input-List
                               //   End of inner loop (2) (implicit / single-line body)
  }                            //  End of loop (1)
  return r;                    //  Return result-List
}                              // End of method