What's the difference between public and private groups?
When you create a subgroup in an organization, groups are created to be public. You can choose to make it private using the "This group can be viewed and joined by invitation only" checkbox.

Public groups show up in the groups browser for all individuals in the organization, even if you are not a member of that group. Clicking on a public group you are not a part of will give you the option to join the group, automatically adding the individual as a member of the group. Additionally, public groups are shown when somebody fills out the registration form for the organization so they may choose to join.

Private groups will be indicated to administrators with a lock icon, and do not show in the groups browser to those in the organization who are not a part of the group. To join a private group, members either need to be added by an administrator or fill out a registration form for the group. Once a registration form is submitted, the member will be marked as "pending" until an administrator approves them.
Note: Although public groups can be made private after they are created, private groups cannot be made public.