Sorting is an algorithm that puts elements in a list with a certain order. (Wikipedia) Different sorting algorithms has different efficiency, and the efficiency of a certain sorting algorithm can vary among best case, average case, and worst case. Efficiency is important when choosing sorting algorithms. In this blog I will list some sorting algorithms' efficiency. For bubble sort, the best, avg,and worst case efficiency would be O(n),O(n^2), O(n^2); for insertion sort, the efficiency is the same with that of the bubble sort; for merge sort, the efficiency of best, avg, and worst cases are all O(n logn); for binary tree sort, its' worst and avg efficiency is O(n logn), while its' best case is O(n); for quick sort, the best and avg cases are both O(n logn), while its' worst case is pretty horrible---O(n^2). Thus we can see that bubble sort is a simple but highly inefficient sorting algorithm, thus this algorithm would be rarely used if the data is not small or sorted. Comparing with bubble sort, insertion sort is more efficient when applied to small and mostly sorted lists. For large lists, merge sort can be a good choice since it's worst case is O(n logn), and it's easy to apply to lists, as it only requires sequential access, not random access. Choosing an appropriate sorting method would be kind of difficult since there's a lot to think about such like data size, sorted or not , etc. Thus probably we would be more familiar with that when we had done more codingin the days later.