Given a group of a certain size, I'm interested in determining whether a non-abelian group of that order exists, and if so how many and what are they up to isomorphism. For example, for |G|=6, the permutation group S_3 is non-abelian. How can I show that any non-abelian group of order 6 is isomorphic to S_3? Ican show that a given non-abelian group of order six must have 2 elements of order 3, and three of order 2. Now it seems reasonable that I can pair up these elements with the elements of S_3 and show that the two are isomorphic. But, when |G|=8, there are 2 non-abelian groups, D_4 and Q_8. How can I show that any non-abelian, order 8 group is isomorphic to one of these? I imagine as the order increases, the number of possible non-abelian groups will increase, so how is it that I can find them all? Also, say I'm given a group of order 20. How can I construct/find a non-abelian group of that order?