使用冒泡排序对序列进行升序排列,每执行一次交换操作系统将会减少 1 个逆序对,因此序列 5,4,3,2,1 需要执行( )次操作,才能完成冒泡排序。
A. 0
B. 5
C. 10
D. 15
答案:C
解析:
逆序对:A 为一个有个数字的有序集(
),其中所有数字各不相同。
如果存在正整数,
使得
而且
,则
这一个有序对称为
的一个逆序对。
4+3+2+1=104+3+2+1=10.
一次交换后会减少1个逆序对。
①4 5 3 2 1 ②4 3 5 2 1
③4 3 2 5 1 ④4 3 2 1 5
⑤3 4 2 1 5 ⑥3 2 4 1 5
⑦3 2 1 4 5 ⑧2 3 1 4 5
⑨2 1 3 4 5 ⑩1 2 3 4 5
体育课的铃声响了,同学们都陆续地奔向操场,按老师的要求从高到矮站成一排。每个同学按顺序来到操场时,都从排尾走到排头,找到第一个比自己高的同学,并站在他的后面。这种站队的方法类似于( )算法。
A. 快速排序
B. 插入排序
C. 冒泡排序
D. 归并排序
答案:B
插入排序:将无序序列插入到有序序列中。
冒泡:相邻元素比较交换。
快速排序:从待排序数列中选取一个给定数,比这个数小的都放在左边,比这个数大的都放在右边,将整个数列分为两部分。对每一部分的数不断重复上述过程。
归并:将已有序的子序列合并,得到完全有序的序列。
以下排序算法的常见实现中,哪个选项的说法是错误的:( )。
A冒泡排序算法是稳定的
B简单选择排序是稳定的
C简单插入排序是稳定的
D归并排序算法是稳定的
答案:B