【发布时间】:2015-12-24 14:40:00
【问题描述】:
我在构建对整数数组进行排序的递归函数时遇到问题。在这一点上,我不知道任何排序算法,这只是我的第二门 CS 课程。我在这里看到了很多解决方案,但这些解决方案的问题是它们有循环或嵌套条件语句。在这个函数中,我不能使用循环或嵌套 if 语句,只能使用单个 if/else 语句。
我知道你们不想简单地给出答案,因为这会影响学习体验,但如果我能指出正确的方向,我将不胜感激。
【问题讨论】:
-
合并排序是一种利用一个元素的数组已排序这一事实的排序。
-
这类编程称为DP(动态编程)。而快速排序是最快的排序算法(geeksforgeeks.org/iterative-quick-sort)解释了基础知识..
-
[Quicksort ](en.wikipedia.org/wiki/Quicksort) 是递归排序算法的典型示例。
-
我建议在他们要求您之前不要查看现有算法。从您的基本案例开始。数组的大小预计会达到 1,这意味着之前的调用提供了一个更大大小的数组。因此,最好先自己尝试一下,了解如何以一种涉及查看越来越小的部分的方式对数组进行排序。使用你所学到的关于递归的知识来推断在调用函数之前和之后你可能会做什么。使用物理或绘制的对象来帮助找到可行的解决方案。这将帮助您以后轻松理解许多算法