【发布时间】:2015-07-15 08:38:46
【问题描述】:
通常我永远不会在 stackoverflow 上问我的学校练习,但我认为如果不使用临时数组或修改数组,他们想要从我们这里得到什么是不可能的。
他们想要我们的是:
应该是递归的快速排序函数
它应该排序(这就是排序算法所做的,哈哈),但它应该保持数组完整,
不能使用临时数组
它必须以链表格式返回排序列表。
函数应该是这样的:
LinkedList *quickSort(int *array, int startPosition, int endPosition)
作为链表返回很容易,排序很容易,但算法的每一步都没有修改?我不这么认为。
我不是说请把解决方案发给我。我只是想让你回答这个问题,是不是不可能?
编辑:“保持数组不变”老师的意思是“不要改变数组的大小,但你可以修改数组的顺序”,所以问题解决了
我会检查其中一个答案,只是为了解决标签问题。
【问题讨论】:
-
也许“临时数组”是指除了将返回的数组之外的数组?我同意措辞似乎很奇怪。我会要求澄清。
-
您不能将数组复制到要创建的列表中,然后在该列表上使用快速排序吗?我没有看到任何禁止您修改返回列表的内容。
-
可以修改后再恢复初始数组吗?
-
但是该函数使用结构返回一个简单的LinkedList,而不是一个数组。
-
很确定“澄清我的作业”离题或太宽泛或其他什么。你真的应该问问你的老师。
标签: c++ arrays recursion linked-list quicksort