Data type agnostic bubble sort

The following code shows a data type agnostic bubble sort implementation. The purpose of the example is to bring out similarities with the  qsort()  function call and show why we need to create a comparison function.