首页 > 试题广场 >

若输入数据存储在带头结点的双向循环链表中,下面各种排序算法是

[问答题]

若输入数据存储在带头结点的双向循环链表中,下面各种排序算法是否仍然适用?为什么?

(1) 快速排序

(2) 直接插入排序

(3) 简单选择排序

(4) 堆排序

答:

(1) 快速排序适用(0.5分),因为可以快速定位到第一个元素与最后一个元素结点(0.5分),然后通过1个指针从头部向后移动,另外一个指针从尾部向前移动,逐一与枢纽进行比较并能够通过修改指针完成结点交换操作(0.5分)

(2) 插入排序适用(0.5分)。因为可以方便的找前驱后继(0.5分)和通过修改指针完成结点交换操作(0.5分)

(3) 选择排序适用(0.5分)。因为只需要移动指针遍历链表(0.5分)并通过修改指针完成结点交换(0.5分)

(4) 堆排序不适用(0.5分)。因为双向循环链表无法方便的找完全二叉树的双亲与孩子结点(1分)

发表于 2016-11-23 23:47:50 回复(0)