![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java算法基础
文章平均质量分 50
算法基础细解
尽力就好
这个作者很懒,什么都没留下…
展开
-
两两交换链表的节点Java语言
两两交换链表中的节点(迭代) 来练练手把:力扣题目链接 文章目录两两交换链表中的节点(迭代)一、两两交换链表中的节点注意事项二、代码如下java语言总结 一、两两交换链表中的节点注意事项 力扣中传入的链表是没有虚拟节点的,所以我们应该要自己在方法中创建一个虚拟节点,方便进行处理 如果链表的节点数量大于两个,在交换前面两个节点的时候,与交换节点相邻的下一个节点会与前两个节点断开,所以我们要创建一个temp指针保存该节点的地址,以方便我们交换完以后可以继续处理后面的节点 因为虚拟节点不能移动,所以我们要原创 2021-09-12 11:38:22 · 198 阅读 · 0 评论 -
java之归并排序
归并排序的分治思想 归并排序,目的就是先将一组数分成一个个数字,每个数字都看成一个整体,这个叫分,通过递归的方法实现;然后再把这些数字两个整体之间进行排序,这个叫做治,两个整体会合并为一个更大的整体,然后这个更大的整体就会和一个相同大小的整体再进行排序 分: //这个是判断是不是为空或者不需要排序的一组数 public static void mergeSort(int[] arr) { i...原创 2020-01-17 09:55:22 · 126 阅读 · 0 评论 -
插入排序
插入 排序和数据的状况有关,最好的情况是全部已经排好序了,这个时候,两个两个数之间对比发现不用交换,则时间复杂度是O(n),因为只要两个数比较就行,n个数里面有n-1次比较,所以时间复杂度是O(n) 比如1 2 4 5 6 7 而最坏情况是每次比较都要交换,例如:7 6 5 4 2 1 ,用选择排序每次比较都要交换。所以时间复杂度是O(n²) 而平均情况还是O(n²) 而我们只要关心最坏情况就行 ...原创 2020-01-16 12:11:11 · 131 阅读 · 0 评论