title: Algorithm for Grouping
body: <p>I am trying to help someone write a program that I thought would be easy, but of course it never is :)</p>
  
  <p>I am trying to take a class roster (usually between 10-20 students) and effectivly uniquely pair off each classmate to another to make unique groups. Therefore in a class of 10 people, you can have 9 groups.</p>
  
  <p>It needs to be able to handle odd number of students too, adding to my confusion.</p>
  
  <p>I was looking at doing this in Java, but that is flexible. Any ideas on an algorithmic way to guarantee a)not infinite looping (ending with 2 people who have already been partners) and b) I am aiming for more efficent time than space, since class size will be small!</p>
  
  <p>Thanks!</p>