1、下列选项中,不可能是快速排序第2趟排序结果的是 :
2,3,5,4,6,7,9
2,7,5,6,4,3,9
3,2,5,4,7,6,9
4,2,3,5,7,6,9
解析:
快排:第i趟至少有i个数归位。
这如果像这种问法,直接写出增序和降序的序列然后和选项比较有2个在最终位置就可能,否则就没可能。
2、下列排序法中,每经过一次元素的交换会产生新的逆序的是( )
正确答案: A 你的答案: D (错误)
快速排序
冒泡排序
简单插入排序
简单选择排序
解析:
产生新的逆序对,并不是说逆序对的数目发生改变。稳定的排序算法,每交换一次,逆序对的数目必然发生改变。
冒泡每交换一次,会减少一个逆序对,并不会产生新的逆序对。
简单插入排序,若插入到已排序序列的最后,则不会产生新的逆序对。
简单选择排序,每次将一个元素归位。无论由小到大归位,还是由大到小归位,都不会产生新的逆序对。
而快排,是跳跃式交换,必然会产生新的逆序对。
3、对下列关键字序列用快速排序法进行排序时,速度最快的情形是()
正确答案: A 你的答案: C (错误)
{21,25,5,17,9,23,30}
{25,23,30,17,21,5,9}
{21,9,17,30,25,23,5}
{5,9,17,21,23,25,30}
解析:
越有序,时间复杂度越高。数据结构中,有一个逆序数的概念。如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个 逆序 。 如2 4 3 1中,2 1,4 3,4 1,3 1是逆序,逆序数是4。
题目中:A8 B17 C11
4、在含有10个结点的二叉排序树上,查找关键字为20的结点,则依次比较的关键字有可能是( )
正确答案: A B C D 你的答案: D (错误)
25,10,15,20
25,10,15,18,20
10,30,20
10,30,25,20
解析:A:首先根节点为25,20比25小搜索其左子树,找到10比25小不矛盾,20比10大搜索其右子树,找到15比10大不矛盾,20比15大搜索其右子树找到20,正确 B:首先根节点25,20比25小搜索其左子树,找到10比25小不矛盾,20比10大搜索其右子树,找到15比10大不矛盾, 20比15大搜索其右子树,找到18比15大不矛盾, 20比***搜索其右子树,找到20,正确 C:首先根节点为10,20比10大搜索其右子树,找到30比10大不矛盾,20比30小搜索其左子树,找到20,正确 D:首先根节点为10, 20比10大搜索其右子树,找到30比10大不矛盾,20比30小搜索其左子树,找到25比30小不矛盾,20比25小搜索其左子树找到20,正确