- 博客(7)
- 收藏
- 关注
原创 递归的简单理解
递归什么是递归:非常广泛的编程方法下面有一个小场景解释递归:去看电影的时候你不知道自己坐在第几排,在没办法数的情况下,通常会问前面的人是第几排,然后他的排数我们在进行+1。但是你前面的也不知道自己是第几排就去问他的前面的人,就这样一直问到第一排,然后一排排的在把座位排数传回来。在这个过程中去的过程称为‘递’,回来的过程称为‘归’,我们可以把上面例子用递推公式表示f(n)=f(n-1)+1 其中f(1)=1 用代码表示就是int f(int n){ if (n==1)
2021-07-27 10:41:12 235
原创 队列的简单理解
队列的简单理解定义:我们可以把它想象成排队买票先来的先买,后来的人只能站在队伍的末尾,不允许插队。队的特点:先进先出。两个基本操作:入队和出队。入队指的是将数据放到队伍尾部,出队指的是从队列头部取出数据基于数组实现的队列public class ArrayQueue{ private String[] items; private int n=0; private int head=0; //队头下标 private int tail=0; //队尾下标
2021-07-19 16:38:59 538
原创 栈的简单理解
栈的理解栈的操作特性只允许在栈顶插入和删除数据。特征就是先进后出。基于数组实现的顺序栈1 public class ArrayStack{2 private String[] items; //数组3 private int count; //栈中的元素个数4 private int n; //栈的大小5 }6 public ArrayStack(int n){7 this.items=new String[n];8 this.count=0
2021-07-19 11:18:41 136
原创 链表的基本理解
链表基于链表实现LRU缓存淘汰算法常见的缓存淘汰算法有:FIFO 先进先出,LFU最少使用,LRU最近最少使用链表的底层逻辑链表和数组不同,不需要一块连续的内存空间,通过指针将一组零散的内存块(也称为节点)串联起来使用链表中为了将所有节点串联起来,不仅存储了数据本身还记录了下一个节点的地址的指针叫做next指针;并且把第一个节点称为头节点,记录链表的基地址;最后一个节点是为节点,记录最后一个节点它的next指针指向null定义一个链表1 public class LinkedList {2
2021-07-09 17:23:18 106
原创 数组的理解
数组的理解数组的定义是一种线性表数据结构,是用一组连续的内存空间存储一组具有相同类型的数据。一般线性表有链表 栈 队列 非线性表有树和图。数组基于定义就限定了要进行增加和删除操作的时候需要做大量的数据搬移才能保证数组中存储数据的连续性。但是可以进行随机访问。计算机要访问具体下表的元素的时候,通过寻址公式计算该元素存储的内存地址,然后根据地址访问对应的内存单元。注意:数组只有根据下标访问元素的时间复杂度为O(1),通常排好序的数组,用二分查找时间复杂度只能达到O(logn)数组的插入和删除操作
2021-07-08 16:12:46 128
原创 时间复杂度的浅认知
时间复杂度1.概念时间复杂度度全称为渐进式时间复杂度:代表的是不是代码的实际执行时间而是表示代码执行时间随着数据规模增大的变化趋势。通常用大O来表示。2.时间复杂度分析算法2.1.加法原则代码的总的复杂度等于量级最大的那段代码的复杂度2.2乘法原则嵌套代码的复杂度等于嵌套内外代码复杂度的乘积2.3常见的时间复杂度量级O(1):代码的执行时间不随着数据规模n变化 注意:复杂度是O(1)不代表就执行了一条代码O(logn)、O(nlogn):1 i=1;2 while(i<n
2021-07-08 15:51:59 137
原创 Markdown基础语法
markdown 语法1.标题 标题使用’#‘来表示 ,一个’#‘来表示一级标题,最多支持六级标题。 注意:在使用完‘#’后面要跟一个空格**效果如下** : ‘# 一级标题’ ‘## 二级标题’ ‘### 三级标题’ ‘####四级标题’ ‘###### 五级标题’ ‘###### 六级标题’# 一级标题## 二级标题### 三级标题#### 四级标题 ##### 五级标题###### 六级标题2.字体、
2021-07-07 11:07:11 65
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人