logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

(Java)算法学习(一): 选择排序-排序过程拆解与算法理解

选择排序是一种基础的排序算法,通过将数组分为已排序和未排序两部分,每次从未排序部分选出最大(或最小)元素放入已排序部分末尾。其时间复杂度为O(n²),适合小规模数据排序。文章详细演示了选择排序的过程,以数组[7,3,9,2,5]为例逐步展示排序逻辑,并提供了Java实现代码。性能测试显示,该算法在100/1000/10000长度的数组上耗时分别为0.0012秒、0.0824秒和7.6543秒,验证

文章图片
#算法#学习#排序算法
(Java)算法学习(二): 插入排序-排序过程拆解与算法优化

插入排序是一种简单直观的排序算法,适用于小规模数据或部分有序的数据集。其核心思想是将未排序的元素逐个插入到已排序部分的适当位置定义变量i和j,初始值均为 1。i用于划分已排序区域(左侧)和未排序区域(右侧),j用于在未排序区域中定位待排序数据。

文章图片
#java#算法#数据结构
(Java)算法学习(三): 快速排序-排序过程拆解与算法优化

本文系统介绍了快速排序算法及其优化策略。快速排序是一种基于分治思想的高效排序算法,平均时间复杂度为O(nlogn)。文章首先阐述了算法原理,包括基准值选取、分区操作和递归排序三个核心步骤。随后提出四种优化方案:1)减少条件判断次数;2)采用"三点取中法"优化基准值选择;3)使用单边递归法降低递归深度;4)针对小规模数据(16个以下)切换为插入排序。通过性能测试验证了优化效果,在

文章图片
#算法#java#数据结构
(Java)算法学习(五): 归并排序-排序过程拆解与算法优化

归并排序是一种基于分治策略的稳定排序算法,通过递归将数组二分至最小单元后合并有序子数组,最终实现整体有序。其核心步骤包括分解和合并:不断二分数组直到子数组长度为1,然后通过双指针比较合并有序子数组。该算法时间复杂度为O(nlogn),空间复杂度为O(n),适合大规模数据排序且保持稳定性。测试显示百万数据仅需107ms处理,验证了其高效性。文章详细图解了排序过程,提供Java实现代码,并对比不同数据

文章图片
#算法#学习#排序算法
到底了