Chapter 10 recursive sort