首页学历类考试大学计算机科学
(简答题)

写出快速排序的非递归调用算法。

正确答案

先调用划分函数Quickpass(划分函数同教材),以确定中间位置,然后再借助栈分别对中间元素的左、右两边的区域进行快速排序。

答案解析

相似试题

  • (判断题)

    递归调用算法与相同功能的非递归算法相比,主要问题在于重复计算太多,而且调用本身需要分配额外的空间和传递数据和控制,所以时间与空间开销通常都比较大。

    答案解析

  • (简答题)

    完成从一维数组A[n]上进行快速排序的递归算法。

    答案解析

  • (填空题)

    对一组记录(54,38,96,23,15,72,60,45,83)进行快速排序,在递归调用中使用的栈所能达到的最大深度为()。

    答案解析

  • (填空题)

    对用数组存储的线性表(16,15,32,11,6,30),用快速排序算法进行由小到大排序,若排序下标范围为0~5,选择元素16作为支点,调用一趟快速排序算法后,元素16在数组中的下标位置为()

    答案解析

  • (单选题)

    将递归算法转换成对应的非递归算法时,通常需要使用()来保存中间结果。

    答案解析

  • (简答题)

    已知Ackerman函数的定义如下: (1)写出递归算法; (2)写出非递归算法; (3)根据非递归算法,求akm(2,1)时栈的变化过程。

    答案解析

  • (简答题)

    试写出求递归函数F(n)的递归算法,并消除递归:

    答案解析

  • (简答题)

    已知Fibonacci数列的递归定义如下: 试写出求解fib(n)的递归算法。

    答案解析

  • (填空题)

    实现任意二叉树的后序遍历的非递归算法而不适用栈结构,最佳的二叉树方法是采用()。

    答案解析

快考试在线搜题