去年,我读了一篇有关“幼儿园量子力学”的精彩论文。这不是件容易的事。
现在,我想知道如何用最简单的词来解释quicksort。我如何证明(或至少是手波)平均复杂度为,对于幼儿园班级,最佳和最差情况是什么?还是至少在小学?
去年,我读了一篇有关“幼儿园量子力学”的精彩论文。这不是件容易的事。
现在,我想知道如何用最简单的词来解释quicksort。我如何证明(或至少是手波)平均复杂度为,对于幼儿园班级,最佳和最差情况是什么?还是至少在小学?
Answers:
Quicksort的核心是:
我认为地球上每个4岁的孩子都可以做1和2。递归可能需要更多的解释,但对他们来说不应该那么难。
至于复杂性,最坏的情况应该很容易。只要考虑一个已经排序的数组:
1 2 3 4
2 3 4
3 4
4
很容易看到(证明)它是。
我不熟悉平均情况下的证明,因此我无法对此提出任何建议。您可以说,在长度为的未排序数组中,选择最小或最大项目的概率为2,那么...?
如果Quicksort理解2的基本计数和除法,则实际上很容易理解。制作一堆X闪存卡,将它们编号为1–X,然后将其洗牌。然后是以下说明:
好,我们这里有(假设有20张)卡片组。我们要按顺序排列它们,所以1是第一个,然后是2,然后是3,依此类推。这是一种非常快速的方法。
首先,让我们穿过这个甲板,从中取出两堆。20的一半是10,所以任何大于10的东西都会进入右侧的堆中,而任何小于10的东西都会进入左侧的堆中。(请务必随身演示。)
现在,让我们用较小的桩做同样的事情。十的一半是多少?(有人说“五个!”)是的!因此,大于5的任何事物都会进入右侧的桩,而小于5的任何事物将会流入左侧的桩。
在这里,我们有大于10的组。所以10的一半是5,那么10加5是多少?(有人说“十五!”)因此,大于15的任何东西进入右侧的该堆中,小于15的任何东西进入左侧的该堆中。
现在,堆变得越来越小,您可以轻松查看它们并将它们整理好。看,我们到了
2, 4, 5, 3, 1
。因此,我们只是像这样切换它们,您可以看到1, 2, 3, 4, 5
。因此,让我们对其他桩进行相同的操作,然后将桩按顺序排列,然后看!它们的顺序是1到20!
恭喜你 您刚刚教了很多孩子自适应快速排序算法的基本原理!您可以根据心智成熟程度进行更深入的研究,但要超出这一点,还需要对形式逻辑有所了解。
至于证明它的复杂性,那比较棘手。这是需要形式逻辑的事情之一,他们必须首先了解big-O表示法的基本原理。您可能首先要推迟该部分。
这个怎么样?
它并不能完全涵盖您的所有问题,但这是一个好的开始。
有关此主题的更多资源在此处链接。
他们还提供了一段视频,在此处介绍了排序算法(包括快速排序)。该视频确实有助于了解年幼孩子的不同排序算法之间的区别。
看到这个小演示的图形化可爱之处。
。