algorithm - 学生初学排序算法应该先教什么?

标签 algorithm sorting

<分区>

如果您是一位编程老师,您必须选择一种排序算法来教您的学生,您会选择哪种?我只要求一个,因为我只想介绍排序的概念。应该是冒泡排序还是选择排序?我注意到这两个是最常教授的。有没有另一种类型的排序可以用更容易理解的方式解释排序?

最佳答案

我不确定我是否可以成为一名计算机科学教师并且只教授一种排序算法。

至少应向学生教授 major sorting types 中的每一种。 ,即交换排序、选择排序、插入排序和归并排序。除了这些类型中的每一种之外,我还会介绍 Quicksort属于分区排序标题。

至于我将涵盖的每种类型的具体分类:

  • Bubble Sort作为交换排序类别的示例,因为它是最简单的排序类型之一,而且他们可能已经看到或自己偶然发现了。这也是他们最有可能最常使用的类型,如果他们必须自己动手做一些简单的事情以便他们理解它是有意义的。
  • Heapsort来自选择排序类别。这可能是仅次于 Quicksort 的最令人困惑的排序,但是一旦他们理解了它是如何设置的,他们就会理解 Quicksort 算法。
  • Insertion Sort作为插入排序类别的一个例子将被涵盖,因为它也是一种简单的排序,他们可以从中得到很多用处。由于他们可能会遇到需要将两个列表合并在一起的情况,因此了解这一点很有意义。
  • Merge Sort有点特殊,所以你不会经常看到它,但它非常擅长它的功能,并且在你需要对零星获得的数据进行排序的情况下仍然很有用。

如果我必须将事情缩小到我可以教的一种类型,但我有时间确保学生准确理解正在发生的事情,那么我会教快速排序。虽然它不容易掌握,但绝大多数框架都将它用于他们的排序算法,因此了解它的工作原理对于您使用该框架进行开发非常有用。此外,如果有人能够理解快速排序,那么他们很可能应该能够自己学习冒泡排序和插入排序。

关于algorithm - 学生初学排序算法应该先教什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/212039/

相关文章:

c# - 哪种方式更准确?

algorithm - 如何在图表中保留社区信息

java - 如何按字母顺序按索引(0)或 ArrayList<List<String>> 中的 List<String> 的索引(2)进行排序,如下所示

algorithm - Quicksort、Heapsort 和 Bubblesort 的相关性

javascript - 根据内部数组对数组进行排序

c# - 子集和问题

c++ - 如何使用A.R Drone 2.0的PID Controller ?

algorithm - 启发式地解决有额外约束的旅行推销员的想法

python - python multiandas排序后的 Pandas groupby不正确

python - sort() 和 reverse() 函数不起作用