题目内容
(请给出正确答案)
[主观题]
试修改起泡排序算法,在正反两个方向交替进行扫描,即第一趟把排序码最大的元素放到序列的最后,第二趟把排序码最小的元素放到序列的最前面。如此反复进行。
查看答案
如果结果不匹配,请 联系老师 获取答案
a)试按照以上思路,实现一个排序算法:
b)你的这一算法,时间和空间复杂度各是多少?
c)改进你的算法,使之能够在O(n+M)时间内对来自[0,M)范围内的n个整数进行排序,且使用的辅助空间不超过O(M)。
假设在算法描述语言中引入指针的二元运算“异或”,若a和b为指针,则的运算结果仍为原指针类型,且
则可利用一个指针域来实现双向链表L。链表L中的每个结点只含两个域:data域和LRPtr域,其中L RPtr域存放该结点的左邻与右邻结点指针(不存在时为NULL) 的异或。若设指针L.Left指向链表中的最左结点,L.Right指向链表中的最右结点, 则可实现从左向右或从右向左遍历此双向链表的操作。试写一算法按任一方向依次输出链表中各元素的值。
拼接时的 U 型卡应正反交替安装,间距不得大于 ()mm;两块模板对接接缝处的U 型卡应满装。
A200
B300
C400
D500
下列排序算法中,()排序在某趟结束后不一定选出一个元素放到其最终的位置上。
A.选择
B.冒泡
C.归并
D.堆