- 博客(24)
- 收藏
- 关注
原创 排序算法 - 希尔排序
本文介绍了希尔排序的基本原理和 Java 实现。希尔排序通过预排序将较大范围的记录变得基本有序,从而减少了直接插入排序中记录的比较次数和移动次数。算法的平均时间复杂度为O(nlogn)到O(n^1.5),空间复杂度为O(1),是不稳定的排序算法。适用于中等大小的数组,对于小型数组,插入排序可能更有效;对于大型数组,快速排序、归并排序可能是更好的选择。
2024-03-27 15:36:42
707
原创 排序算法 - 插入排序
本文介绍了插入排序的基本原理和 Java 实现。插入排序的工作原理类似于玩扑克牌时整理手牌的过程,对未排序数据从后向前扫描,在已排序序列中找到合适位置插入,直到所有数据都被插入到正确位置。插入排序的时间复杂度为O(n^2),空间复杂度为O(1),属于稳定排序,适用于小规模或基本有序的数据排序。
2024-03-20 13:57:13
445
原创 排序算法 - 快速排序
本文介绍了快速排序的基本原理和 Java 实现。快速排序是一种高效的排序算法,采用分治思想,通过选择一个基准元素,将数组分为两个子数组,一个包含小于基准元素的元素,另一个包含大于基准元素的元素。然后递归地对这两个子数组进行排序。算法步骤包括选择基准元素、分区操作、递归排序。文档提供了完整的代码实现,并进行了性能分析。快速排序的平均时间复杂度为O(nlogn),最坏情况为O(n^2),平均空间复杂度为O(logn),最坏为O(n)。
2024-03-18 13:58:16
859
原创 排序算法 - 冒泡排序
本文介绍了冒泡排序的基本原理和 Java 实现,并对算法进行了优化。冒泡排序通过比较相邻元素并交换位置,使最大元素 “冒泡” 到数组末尾,重复 n-1 趟排序后实现数组升序。本文最后对冒泡排序进行了复杂度和稳定性的评估并指出该算法的优缺点和适用情况。
2024-03-16 14:36:14
914
原创 Spring Boot 接收时间数据问题解决
Spring Boot 在或者时,对时间数据的处理默认使用的是 Jackson,而 Jackson 默认使用 GMT 时区(相对于中国是少了 8 小时)进行转换,这就导致接收或返回的时间数据经过处理后会与实际时间相差 8 个小时。后端接收前端传递的时间数据时,会多 8 个小时前端接收后端返回的时间数据时,会少 8 个小时。
2023-10-13 18:51:20
491
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人