在插入排序、冒泡排序、快速排序、归并排序等排序算法中,占用辅助空间最多的是哪个?

 我来答
汽车之路w
高粉答主

2020-07-10 · 关注我不会让你失望
知道大有可为答主
回答量:1.2万
采纳率:100%
帮助的人:295万
展开全部

在插入排序、冒泡排序、快速排序、归并排序等排序算法中,占用辅助空间最多的是归并排序。

对n个记录的文件进行快速排序,所需要的辅助存储空间大致为O(1og2n)。

1、所有的简单排序方法(包括:直接插入、起泡和简单选择)和堆排序的空间复杂度为O(1);

2、快速排序为O(logn),为栈所需的辅助空间;

3、归并排序所需辅助空间最多,其空间复杂度为O(n);

4、链式基数排序需附设队列首尾指针,则空间复杂度为O(rd)。



扩展资料

计算机排序算法的特点

1、有穷性

一个算法应包含有限的操作步骤,而不能是无限的。有穷性值在合理范围之内,如果让计算机执行一个历时1000年才结束的算法,这虽然是有穷的,但超过了合理的限度,人们不把他视为有效算法。

2、确定性

算法中的每一个步骤都应当是确定的,而不应当是含糊的,摩棱两可的。算法中的每一个步骤应当不致被解释成不同含义的,而应是十分明确的。也就是说,算法的含义应当是唯一的,而不应当产生歧义性。

3、有零个或多个输入

所谓输入,即在执行算法是需要从外界取得必要的信息。

4、有一个或多个输出

算法的目的是为了求解,没有输出的算法是没有意义的。

5、有效性

算法中的每一个步骤都应当能有效的执行,并得到确定的结果。

锦瑟1q
2010-01-07 · TA获得超过1612个赞
知道小有建树答主
回答量:158
采纳率:0%
帮助的人:140万
展开全部
是《数据结构》课上的吧?。。。呵呵。。。

直接插入排序是将一个记录插入已排序好的序表中,从而得到一个新的、记录增1的有序序列。它需要设置一个哨兵,通常就是用R[0],所以它需要的辅助空间为1。

冒泡排序主要是利用相邻大小比较之后的交换实现的,在交换的时候需要一个辅助空间,所以它需要的辅助空间也为1。事实上,冒泡排序是快速排序的一种特例。

快速排序中除了交换时需要一个数据的辅助空间。

归并排序归并排序主要是分治的思想,即把两个或两个以上的有序表合成一个新的有序表,实现归并排序需要和待排记录等数量的辅助空间。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fengduole
2010-01-10 · 超过11用户采纳过TA的回答
知道答主
回答量:41
采纳率:0%
帮助的人:33.2万
展开全部
必然是归并,归并并不是就地排序,而其他三个都是。
也就是说,其他三个都将占用常数个辅助空间,而归并在执行时会占用O(n)的空间进行辅助排序,而其他都是O(1)。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fanzhidongyzby
2010-01-07 · TA获得超过102个赞
知道答主
回答量:122
采纳率:0%
帮助的人:45.4万
展开全部
插入排序、冒泡排序都是O(n^2)的
快速排序、归并排序是 O(n*log2(n))的
一般情况下,快速的排序方式都是以牺牲空间为代价的....
而相比而言,归并排序使用的辅助空间最多,因为它要对多个链表排序,还要合并,都要附属空间,但快速排序只要一个一个链表....
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友3288627d1
2010-01-07 · TA获得超过1175个赞
知道小有建树答主
回答量:1637
采纳率:0%
帮助的人:558万
展开全部
好像是归并排序
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式