Loading docs/basic/sort.md +10 −0 Original line number Diff line number Diff line Loading @@ -148,3 +148,13 @@ std::sort(a, a + n); <http://atool.org/sort.php> ATool 的排序演示动画 <https://www.geeksforgeeks.org/counting-sort/> ## 排序的应用 借助排序,我们可以降低求解问题所需要的时间复杂度。 考虑一个数列,你需要检查其中是否有元素相等。 一个朴素的做法是检查每一个数对,并判断这一对数是否相等。时间复杂度是 $O(n^2)$。 我们不妨先对这一列数排序,之后不难发现:如果有相等的两个数,它们一定在新数列中处于相邻的位置上。这时,只需要 $O(n)$ 地扫一遍新数列了。总的时间复杂度是排序的复杂度($O(nlogn)$)。 Loading
docs/basic/sort.md +10 −0 Original line number Diff line number Diff line Loading @@ -148,3 +148,13 @@ std::sort(a, a + n); <http://atool.org/sort.php> ATool 的排序演示动画 <https://www.geeksforgeeks.org/counting-sort/> ## 排序的应用 借助排序,我们可以降低求解问题所需要的时间复杂度。 考虑一个数列,你需要检查其中是否有元素相等。 一个朴素的做法是检查每一个数对,并判断这一对数是否相等。时间复杂度是 $O(n^2)$。 我们不妨先对这一列数排序,之后不难发现:如果有相等的两个数,它们一定在新数列中处于相邻的位置上。这时,只需要 $O(n)$ 地扫一遍新数列了。总的时间复杂度是排序的复杂度($O(nlogn)$)。