问题
单项选择题
对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是( )
A.冒泡排序n/2
B.冒泡排序为n
C.快速排序为n
D.快速排序为n(n-1)/2
答案
参考答案:D
解析: 本题主要考查对排序算法的理解。冒泡排序法首先将第一个记录的关键字与第二个记录的关键字进行比较,若逆序则交换,然后比较第二个与第三个,以此类推,直至第n-1个与第n个记录的关键字进行比较。第一趟冒泡排序使最大的关键字元素放到最后。以此类推,进行第2~n次冒泡排序。如果在排序过程中不存在逆序,则排序结束。在最坏情况下,冒泡排序中,若初始序列为“逆序”序列,需要比较n(n-1)/2次。快速排序是对冒泡排序的一种改进。它的基本思想是:通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字比另一部分记录的关键字小,然后分别对这两部分记录继续进行排序,最终达到整个记录有序。对于快速排序,若初始记录序列按关键字有序或基本有序时,快速排序退化冒泡排序,最坏情况下比较次数为n(n-1)/2。