排序算法的知识图谱(包含详细代码)

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

其中有三个时间复杂度为O(nlogN)的要着重学习:

一、归并排序,有两种实现方案

归并排序有两种实现方案,一种是顶向下的归并(分治),一种是自底向上的归并(动态规划)。

二、快速排序,也有两种

第一种快排:QuickSort,种有一个partion()方法;

第二种快排:Quick3Way,叫三路快排,适合对有列表中有多个重复元素的排序;

三、堆排序,基于sink()方法

无需构建一个堆结构,只需使用sink()方法。

具体的代码在github上:https://github.com/hefrankeleyn/ARTS/LeetCodeWP/src/main/java/com/hef/week09/sort

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值