@烟雨倾城ゝ
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
冒泡排序(超详细)
1、什么是冒泡排序?冒泡排序的英文Bubble Sort,是一种最基础的交换排序。之所以叫做冒泡排序,因为每一个元素都可以像小气泡一样,根据自身大小一点一点向数组的一侧移动。冒泡排序的原理:每一趟只能确定将一个数归位。即第一趟只能确定将末位上的数归位,第二趟只能将倒数第 2 位上的数归位,依次类推下去。如果有 n 个数进行排序,只需将 n-1 个数归位,也就是要进行 n-1 趟操作。而 “每一趟 ” 都需要从第一位开始进行相邻的两个数的比较,将较大的数放后面,比较完毕之后向后挪一位继续比较下面原创 2021-06-11 11:35:50 · 395777 阅读 · 49 评论
-
带你了解树的全家桶(BST树到AVL树到B树到B+树)
带你了解树的全家桶(BST树到AVL树到B树到B+树)原创 2022-11-30 21:38:20 · 873 阅读 · 0 评论 -
肝了一星期,终于把堆的创建、插入、删除和堆排序肝完了(超详细图文讲解)
肝了一星期,终于把堆的创建、插入、删除和堆排序肝完了(超详细图文讲解)原创 2022-09-30 17:07:32 · 776 阅读 · 0 评论 -
什么是二叉查找树?看完这篇就懂了
什么是二叉查找树?看完这篇就懂了原创 2022-09-22 11:41:50 · 546 阅读 · 0 评论 -
二叉树是什么?有几种遍历方式?怎么实现遍历?看完这篇文章之后相信你会有更好的理解
二叉树是什么?有几种遍历方式?怎么实现遍历?看完这篇文章之后相信你会有更好的理解原创 2022-09-20 15:45:26 · 842 阅读 · 0 评论 -
原来栈和队列之间其实也是可以互相转换的啊
原来栈和队列之间其实也是可以互相转换的啊原创 2022-09-16 17:31:01 · 414 阅读 · 0 评论 -
队列的两种实现方式---数组+链表
队列的两种实现方式---数组+链表原创 2022-09-07 19:11:49 · 654 阅读 · 0 评论 -
“栈” 能不能完美实现括号匹配问题呢?
“栈” 能不能完美实现括号匹配问题呢?原创 2022-09-07 10:39:20 · 230 阅读 · 0 评论 -
谈谈 “栈” 到底是个啥玩意,真的有那么难吗?
谈谈 “栈” 到底是个啥玩意,真的有那么难吗?原创 2022-09-06 15:42:23 · 447 阅读 · 0 评论 -
约瑟夫环真的那么难吗?
约瑟夫环真的那么难吗?原创 2022-09-05 18:05:59 · 957 阅读 · 0 评论 -
快慢指针的几种应用场景,你真的了解吗?
快慢指针的几种应用场景,你真的了解吗?原创 2022-09-05 11:36:35 · 809 阅读 · 0 评论 -
什么是双链表?
什么是双链表?原创 2022-08-26 16:32:59 · 1122 阅读 · 0 评论 -
什么是单链表?
什么是单链表?原创 2022-08-25 20:48:47 · 530 阅读 · 0 评论 -
什么是顺序表?
什么是顺序表?原创 2022-08-24 17:32:18 · 796 阅读 · 1 评论 -
计数排序(超详细)
通过动图和详细代码简单易懂介绍计数排序的实现原创 2022-08-24 11:49:59 · 2860 阅读 · 1 评论 -
插入排序(超详细)
通过动态和代码详细介绍插入排序算法原创 2022-08-23 18:50:00 · 28442 阅读 · 4 评论 -
选择排序(超详细)
详细介绍选择排序原创 2022-08-23 16:24:58 · 21514 阅读 · 2 评论 -
力扣刷题笔记----栈和队列
3、栈(1)有效的括号解题思路:有效的情况:1)不嵌套:()[]{}2)嵌套: {[()]}无效的情况:1)长度为奇数,左括号多余:(()[]{}2)长度为奇数,右括号多余:()[]{}}3)长度为偶数,左括号与右括号不配对:{{()]}图解:(1)遇到左括号,将相应的右括号入栈(2)遇到右括号且匹配则出栈class Solution { /** *使用字符串替换法 */ public boolean isValid1(String s)原创 2021-10-24 18:36:42 · 808 阅读 · 0 评论 -
力扣刷题笔记----链表
(1)反转链表解题思路:思路就是去遍历整个链表,然后执行把每个节点的下一节点(next)变成它的前节点(pre)这个操作。设置三个节点 pre、cur、next ,其中 pre 为原链表之前的空节点,cur 为原链表的头节点,next 为 cur 的下一节点:(1)每次查看 cur 节点是否为 NULL ,如果是,则结束循环,获得结果(2)如果 cur 节点不是为 NULL ,则先设置临时变量 next 为 cur 的下一个节点(3)让 cur的下一个节点变成指向 pre ,而后 pre 移动原创 2021-10-06 16:13:02 · 515 阅读 · 0 评论 -
力扣刷题笔记----数组
(1)两数之和class Solution { public int[] twoSum(int[] nums, int target) { for(int i=0;i<nums.length;i++) for(int j = i+1;j<nums.length;j++) if(nums[i]+nums[j]==target) return new int[] {i,j};原创 2021-10-06 16:05:03 · 450 阅读 · 0 评论 -
一文搞懂递归算法与动态规划的关系
目录1、什么是递归?2、递归算法的通用解决思路(1)明确你要这个函数的功能(2)寻找问题与子问题的关系 阶乘的关系(即递推公式)(3)将第二步的递推公式用代码表示出来补充到步骤 1 定义的函数中3、实战演练案例一:斐波那契数列(1)定义一个函数,它代表了求第 n 项的值函数(2)寻找问题与子问题的关系 阶乘的关系(3)将第二步的递推公式用代码表示出来补充到步骤 1 定义的函数中案例二:青蛙跳台阶问题(1)定义一个函数,它代表了跳上 n 级台阶的跳法(2)寻找问题与子问题的关系 阶乘的关系(3)将第二步的递推原创 2021-06-13 15:08:39 · 382 阅读 · 0 评论 -
分治法 | 快速排序
1、什么是快速排序?快速排序是通过一组排序将要排序的数据分割成独立的两个部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归实现,以此使所有数据变成有序序列。2、算法设计(1)分解:先从数列中取出一个元素作为基准元素。将问题分解为两个子序列,小于或等于基准元素的子序列在左侧,大于基准元素的子序列在右侧。(2)治理:对两个子序列进行快速排序(3)合并:将排好序的有序子序列进行合并,得到最终的有序序列快速排序与合并排序的区原创 2021-06-12 21:41:27 · 759 阅读 · 0 评论 -
分治法 | 合并排序
分治法 | 合并排序1、什么是归并排序?合并排序就是将待排序的数组分成两半后排好序,然后再将两个排好序的序列合并成一个有序序列。由于排序问题给定的是一个无序序列,可以将待排序元素分解成两个规模大致相等的子序列,如果还不易解决,再将得到的子序列继续分解,直到子序列中包含的元素个数为 1 .因为单个元素的序列本身就是有序的,此时便可以进行合并,从而可以得到一个完整的有序序列。2、算法设计合并排序就是采用分支的策略实现对 n 个元素进行排序的算法。(1)分解:将待排序的元素分成大小大致相同的两个子原创 2021-06-12 12:03:50 · 603 阅读 · 0 评论 -
什么是时间复杂度?
什么是时间复杂度?要学好算法,就必须理解时间复杂度这块重要的基石,今天我们来聊聊为什么要引入时间复杂度,什么是时间复杂度以及如何去算一个算法的时间复杂度时间复杂度的意义它是衡量代码好坏的重要指标:包括运行时间和占用空间问:代码都还没有运行起来,又怎么知道代码运行所花的时间呢?答:由于运行环境和输入规模的影响,代码的绝对执行时间是无法估计的。但是我们却可以预估代码的基本操作次数。代码基本操作执行次数场景1:问:一条长10寸的面包,如果每3天吃掉1寸,那么吃掉整个面包需要几天?答:3原创 2021-06-09 22:52:40 · 879 阅读 · 1 评论
分享