我有一个家庭作业,内容如下(不要生气/担心,我不是要你做我的作业):
编写一个程序,通过使用二叉搜索树的快速排序方法对一组数字进行排序。推荐的实现是使用递归算法。
这是什么意思?到目前为止,这是我的解释,正如我在下面解释的那样,我认为两者都有缺陷:
A. 从用户那里获取一组数字(整数或其他)。使用数组上的普通快速排序算法对它们进行快速排序。然后将东西放入二叉搜索树,使数组的中间元素成为根,等等,完成。
B. 从用户那里获取数字,直接将它们一一放入树中,使用二叉搜索树的标准属性。树是“排序的”,一切都很好——做得很好。
这就是我感到困惑的原因。选项“A”完成了作业所要求的一切,除了它并没有真正使用二叉树,而是在最后一分钟抛出它,因为它是二叉树上的家庭作业。这让我觉得预期的练习不可能是“A”,因为主要主题不是快速排序,而是二叉树。
但是选项“B”也好不到哪里去——它根本不使用快速排序!所以,我很困惑。
以下是我的问题:
如果解释是选项'A',就这么说吧,我没有问题,谢谢你的时间,再见。
如果解释是选项'B',为什么用于在二叉树中插入值的排序方法与快速排序相同?除了它们(以我目前所学的形式)都使用递归分治策略并将输入分成两部分之外,它们似乎本质上并不相似。
如果解释是别的……我该怎么办?