![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java数据结构和算法
java小白沣
研究生就读,非科班记录从0开始学java
展开
-
查找算法:二分查找
1.二分查找的概念 二分查找又可以叫做折半查找,意思就是将一个数组拆成一半来查找,先找到数据中间的那个数和我们要找的目标数进行比较,如果发现比中间的数大,就向右边继续折半查找,如果小就向左边查找,所以这个算法需要要求这个数组是已经排好序的,默认是从小到大排序。 2.二分查找的实现 public int binarySearch(int nums[],int target,int left,int right){ int mid = (left + right)/2; //中间位置 if(target &原创 2021-04-12 09:46:10 · 59 阅读 · 0 评论 -
线性表篇:普通队列
一 队列 队列也是和栈类似的线性表,只不过栈遵循先进后出的原则,而列表则遵从先进先出的原则,普通队列一般有头部和尾部,数据从头部出,从尾部进,队列一般还有双端队列、并发队列、阻塞队列等,这里只说普通队列的实现。 二 自己实现普通队列 package queue; //这里使用数组实现队列 public class Queue { private int[] queue; int maxSize; //最大容量 int front ; //队列头 int rear ; //队原创 2021-04-05 16:59:07 · 82 阅读 · 0 评论 -
线性表篇:栈
一 栈 栈是一种只能在一端进行插入和删除操作的线性表,其中这一端叫做栈顶,并且栈具有的最大特点就是先进后出,就好比一列人进入了一个前面是死胡同的通道,那么最先进去的人就被堵在里面了,只能等到前面的人走完才能出来,这就是栈的特点。 我们指导List接口下有一个Vector,Vector下有一个stack,但是一般可以不用这个,这个是遗留下来的类,一般建议可以用Queue接口下的Deque,关于这个可以用作栈来使用。下面有参考文章链接。 二 自己实现栈 package stack; public class原创 2021-04-02 12:55:46 · 116 阅读 · 0 评论 -
线性表篇:动态数组
一 动态数组的性质 Java动态数组是一种可以任意改变数组长度的对象,原来的数组是大小固定的,不具备灵活性,因此当数据超出容量的时候需要扩容数组,来承载新的数据,动态数组就是一种比较简单的方法,其中在java接口中,ArrayList接口就是与之对应比较常用的一种。 二 自己实现动态数组 三 关于ArrayList的使用 这是链接 ...原创 2021-04-01 19:32:45 · 128 阅读 · 0 评论