Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 哪种数据结构在递归实现时总是运行数组大小的一半?_Algorithm_Data Structures - Fatal编程技术网

Algorithm 哪种数据结构在递归实现时总是运行数组大小的一半?

Algorithm 哪种数据结构在递归实现时总是运行数组大小的一半?,algorithm,data-structures,Algorithm,Data Structures,我今天考试时有这个问题。 选项有:1麦格排序2快速排序3插入排序4气泡排序5选择排序 我觉得答案不是1就是2,但我不知道是哪一个。合并排序和快速排序似乎不会停留在中间。有人能解释一下你选择答案的原因吗?合并排序是用递归调用的,即对每次递归调用的一半数据进行排序。但是,数据不需要重复。请定义运行数组大小的一半。我猜如果n=1000,它将运行500次。函数的递归执行??因此问题是:哪个算法将达到输入数组大小一半的递归深度?这是最坏的还是一般的情况?递归实现的定义是什么?因为您总是可以混合使用递归和迭

我今天考试时有这个问题。 选项有:1麦格排序2快速排序3插入排序4气泡排序5选择排序
我觉得答案不是1就是2,但我不知道是哪一个。合并排序和快速排序似乎不会停留在中间。有人能解释一下你选择答案的原因吗?

合并排序是用递归调用的,即对每次递归调用的一半数据进行排序。但是,数据不需要重复。

请定义运行数组大小的一半。我猜如果n=1000,它将运行500次。函数的递归执行??因此问题是:哪个算法将达到输入数组大小一半的递归深度?这是最坏的还是一般的情况?递归实现的定义是什么?因为您总是可以混合使用递归和迭代,就像典型的快速排序实现一样。我们是否假设快速排序的分区步骤和合并排序的合并步骤也是递归实现的?那么插入排序呢?也许你知道我在这里指出的是,这个问题太容易被解释了,所以不可能回答。这是一个解释,至少会让某位老师记住这一点,谢谢