![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 82
OldZhangYH
日拱一卒
展开
-
排序算法大汇总
排序算法大汇总冒泡排序选择排序插入排序希尔排序快速排序源代码TODO 冒泡排序 冒泡排序会两两比较每个元素的大小,并将其排序。每一趟排序都会确定一个元素的位置,把最大的放在最后面,并且在排序的过程中会将小的元素集中到前面,大的元素集中到后面,冒泡排序是稳定的 时间复杂度O(n^2),空间复杂度O(1) public static int[] bubbleSort(int[] nums){ for (int i = 0; i < nums.length; i++) {原创 2022-05-03 14:09:00 · 515 阅读 · 0 评论 -
算法套路汇总
链表 链表千万别递归,递归栈会导致你的空间复杂度无法做到O(1) 快慢指针 判断是否有环 一次遍历找到链中的倒数第几个点 找到中间节点 空置头节点 new一个空节点指向头节点可以有效的防止空指针报错 数组 前缀和数组 new一个新数组preSum来存放之前数组(该数组不能被修改)的和。就可以通过preSum数组的加减快速求出原数组某个区间内元素的和。 进阶 可以扩展到二维数组 可以用哈希表来代替数组计算前缀原创 2021-11-17 10:49:19 · 536 阅读 · 0 评论 -
查找算法大汇总
二分查找(折半查找) 二分查找也叫折半查找,是一种高效的查找方法。时间复杂度O(n),但是要注意的是只有顺序存储的有序列表可以使用二分查找。 原理 二分查找顾名思义是将列表分为两边。假设列表从小到大排列,首先判断中间位置是否等于查找元素,相等就返回当前位置。大于查找元素就对前半部分列表重复上述操作,小于查找元素就对后半部分列表重复上述操作。 举个栗子:list:[原创 2021-09-25 18:41:52 · 163 阅读 · 0 评论