【问题标题】:Merge Sort and term definitions合并排序和术语定义
【发布时间】:2011-11-09 05:32:17
【问题描述】:

所以我有这样的作业:

"b) 使用合并排序对下表中的值进行排序。显示每个递归调用并在单独的行上合并。您不需要显示单个交换,因为将使用第二个数组来执行此任务。当左右两半的取值数量相等时,假设右半边包含的取值数量较多,Step列应包含RRC(右递归调用)、LRC(左递归调用)或M(合并)。” 并向我展示了一个表格,其中第一列是“步骤”,其余列是数组或序列中每个数字的一​​个空格。该表有大量行,因此我可以在每一行中填写排序步骤。 [是的,我是菜鸟,我不知道如何在这个文本编辑工具上制作表格。]

我在这个作业中的问题是,我不知道教授所说的“左递归调用”或“右递归调用”以及“合并”是什么意思。 我知道如何进行合并排序。我唯一不知道的是我必须使用这些术语来填充每一行的第一列。

我真的需要帮助,网络上没有任何地方可以解释这一点。

【问题讨论】:

  • 我很确定“左递归”和“右递归”是指合并排序算法的一部分,您可以在列表的左半部分和右半部分调用排序。如果您知道合并排序算法,合并应该是显而易见的。 (另外,你不能问你的教授吗?)
  • 是的...但是现在是晚上,明天差不多了,我会很忙,我只能提交作业。

标签: java sorting merge


【解决方案1】:

Merge Sort 是一种recursive 算法,它通过将列表(或表、数组或其他东西)拆分为大致相等的长度来工作。

因此,由于您将值列表分为两部分,因此可以将其视为左侧部分,将另一部分视为右侧部分。然后递归地对其中的每一个进行排序。

你现在能弄清楚 LRC 和 RRC 指的是什么吗?

【讨论】:

  • 所以说我有 192837465。我通过递归将它分成多个数组,然后我最终得到数组“1 9” 如果我对那个进行排序,它是 LRC 还是 RRC?稍后当我合并 19 和 28 时,会是 M(合并)还是 RRC 或 LRC 或全部?这让我很困惑。
  • this image 中,只要出现红色,它就是一个合并。否则,根据它在哪一侧,它要么是 RRC,要么是 LRC。也学习a human's simulated steps for Merge Sorting
猜你喜欢
  • 2015-11-06
  • 1970-01-01
  • 2010-12-29
  • 2015-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-06
相关资源
最近更新 更多