以下哪个算法的时间复杂度在最好、最坏和平均情况下都是O(n log n)?
答案解析
归并排序是一种分治算法,它将数组分成两半,递归地对它们进行排序,然后合并排序好的两半。无论输入数据的初始状态如何,归并排序的时间复杂度都是O(n log n)。快速排序在平均和最好情况下的时间复杂度是O(n log n),但在最坏情况下是O(n^2)。冒泡排序和插入排序在最好、最坏和平均情况下的时间复杂度都是O(n^2)。易错点在于快速排序在最坏情况下的时间复杂度。
正确答案:B