
其中有三个时间复杂度为O(nlogN)的要着重学习:
一、归并排序,有两种实现方案
归并排序有两种实现方案,一种是顶向下的归并(分治),一种是自底向上的归并(动态规划)。
二、快速排序,也有两种
第一种快排:QuickSort,种有一个partion()方法;
第二种快排:Quick3Way,叫三路快排,适合对有列表中有多个重复元素的排序;
三、堆排序,基于sink()方法
无需构建一个堆结构,只需使用sink()方法。
具体的代码在github上:https://github.com/hefrankeleyn/ARTS/LeetCodeWP/src/main/java/com/hef/week09/sort

本文深入探讨了三种时间复杂度为O(nlogN)的排序算法:归并排序(包括顶向下和底向上两种实现)、快速排序(包括QuickSort和Quick3Way)以及堆排序,特别提到了堆排序中sink()方法的重要性。这些算法的详细代码可在github链接中查看,对于提升编程技能和理解高效排序算法极具价值。
3246

被折叠的 条评论
为什么被折叠?



