首页 > 大学本科> 工学
题目内容 (请给出正确答案)
[主观题]

上述用栈来代替递归实现快速排序的算法,在最差情况下栈有多深?怎样组织递归调用的顺序可以减小栈的深度?试

在上面程序的基础上写出改进的非递归算法。
查看答案
答案
收藏
如果结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能还需要:
您的账号:
发送账号密码至手机
发送
安装优题宝APP,拍照搜题省时又省心!
更多“上述用栈来代替递归实现快速排序的算法,在最差情况下栈有多深?…”相关的问题
第1题
在使用非递归方法实现快速排序时,通常要利用一个栈记忆待排序这间的两个端点。那么能否用队列来代替这个栈?为什么?

点击查看答案
第2题
在实现快速排序的非递归算法时,可根据基准元素.将待排序排序码序列划分为两个子序列。若下一趟
首先对较短的子序列进行排序,试编写相应的算法,并说明在此做法下,快速排序所需要的栈的深度为O(log2n),

点击查看答案
第3题
下面是一个快速排序的逆归算法。为了避免最坏情况,取基准记录pivot采用从lelt,right和中取中间

下面是一个快速排序的逆归算法。为了避免最坏情况,取基准记录pivot采用从lelt,right和下面是一个快速排序的逆归算法。为了避免最坏情况,取基准记录pivot采用从lelt,right和中取中取中间值,并交换到low位置的办法。数组A存放待排序的一组记录,数据类型为T,left和right是待排序子区间的最左端点和最右端点。

下面是一个快速排序的逆归算法。为了避免最坏情况,取基准记录pivot采用从lelt,right和中取

(1)实现三者取中子程序mediancy(A,left,right);

(2)改写QuickSort算法,不用栈消去第二个递归调用QuickSort(A,pivotPos+1,right);

(3)继续改写QuickSort算法,用栈消去剩下的递归调用。

点击查看答案
第4题
设有n个元素的待排序元素序列为TA[],试编写一个函数,利用队列辅助实现快速排序的非递归算法。

点击查看答案
第5题
图的BFS算法是一个非递归搜索算法,它利用队列实现分层遍历。如果使用栈代替队列,其他做法不变,
我们称这个算法为D-搜索算法。分别使用BFS算法和D算法从顶点v0开始遍历,画出图8-44所示连通图的BFS遍历结果和D搜索遍历结果。

点击查看答案
第6题
将一个非负十进制整数转换成八进制数,使用非递归算法实现。 算法分析:十进制转换成八进制的过程是将十进制

将一个非负十进制整数转换成八进制数,使用非递归算法实现。

算法分析:十进制转换成八进制的过程是将十进制整数除8得余数,直到商是0为止,然后倒排余数。为了得到倒排的余数,可以利用栈来实现,每次运算后将余数压入栈中,直到商为0,将栈中数据输出即是。使用顺序栈,将顺序栈的定义及其基本操作的实现写在头文件“seqstack.h”中。

点击查看答案
第7题
快速排序是一个递归的算法。()
点击查看答案
第8题
写出非递归调用的快速排序算法。

点击查看答案
第9题
利用快速排序,求出所有关键字值小于k的元素,放到一端,并给出个数的非递归算法。
点击查看答案
第10题
把递归算法转化为非递归算法有如下两种基本方法:

(1)直接用循环结构的算法替代递归算法。

(2)用()模拟系统的运行过程,通过分析只保存必须保存的信息,从而用非递归算法替代递归算法。

A.栈

B.队列

C.顺序表

D.链表

点击查看答案
退出 登录/注册
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改