
排序算法
文章平均质量分 87
孤诣Coding
有道无术,术尚可求;有术无道,止于术
展开
-
排序算法 - 希尔排序
本文介绍了希尔排序的基本原理和 Java 实现。希尔排序通过预排序将较大范围的记录变得基本有序,从而减少了直接插入排序中记录的比较次数和移动次数。算法的平均时间复杂度为O(nlogn)到O(n^1.5),空间复杂度为O(1),是不稳定的排序算法。适用于中等大小的数组,对于小型数组,插入排序可能更有效;对于大型数组,快速排序、归并排序可能是更好的选择。原创 2024-03-27 15:36:42 · 751 阅读 · 0 评论 -
排序算法 - 插入排序
本文介绍了插入排序的基本原理和 Java 实现。插入排序的工作原理类似于玩扑克牌时整理手牌的过程,对未排序数据从后向前扫描,在已排序序列中找到合适位置插入,直到所有数据都被插入到正确位置。插入排序的时间复杂度为O(n^2),空间复杂度为O(1),属于稳定排序,适用于小规模或基本有序的数据排序。原创 2024-03-20 13:57:13 · 480 阅读 · 0 评论 -
排序算法 - 快速排序
本文介绍了快速排序的基本原理和 Java 实现。快速排序是一种高效的排序算法,采用分治思想,通过选择一个基准元素,将数组分为两个子数组,一个包含小于基准元素的元素,另一个包含大于基准元素的元素。然后递归地对这两个子数组进行排序。算法步骤包括选择基准元素、分区操作、递归排序。文档提供了完整的代码实现,并进行了性能分析。快速排序的平均时间复杂度为O(nlogn),最坏情况为O(n^2),平均空间复杂度为O(logn),最坏为O(n)。原创 2024-03-18 13:58:16 · 904 阅读 · 0 评论 -
排序算法 - 冒泡排序
本文介绍了冒泡排序的基本原理和 Java 实现,并对算法进行了优化。冒泡排序通过比较相邻元素并交换位置,使最大元素 “冒泡” 到数组末尾,重复 n-1 趟排序后实现数组升序。本文最后对冒泡排序进行了复杂度和稳定性的评估并指出该算法的优缺点和适用情况。原创 2024-03-16 14:36:14 · 996 阅读 · 0 评论