- 博客(7)
- 收藏
- 关注
原创 【Java】【Collection】Set、List的简单概述
1、Collection集合:Collection集合属于java.util工具类下的工具类集合。它里面最重要的的就是Set和List。当然也有其他接口。2、List接口(1)特点:有序集合,即存取顺序相同;有索引,可用普通for循环遍历;可存储重复元素;(2)特有方法:void add(int index,E val)在指定位置添加指定元素E get(int index)返回指定...
2019-06-28 15:33:03 117
原创 【Java】二叉树(BST)的实现
二叉树一、二叉树的形成:二叉树是来源与我们熟知的二分查找。将二分查找分成两个部分,写成树的形式。上图就是将有序的数组进行二分查找后写出的二叉树二、二叉树的特点1、右孩子>父节点>左孩子2、每个节点最多有两个孩子3、第n层节点的个数为2^n,树的高度就是Log2(n)三/代码实现...
2019-06-27 15:42:58 300
原创 【Java】插入排序简介及实现
插入排序一、插入排序思想简介从角标为1 的元素开始(因为角标为0的元素默认已经排好了顺序),外层遍历arr.length-1次,记录角标为1的元素的值(将此元素当作一个base)。j指针从当前base元素的前一个开始,向前遍历,当遇到比base元素值大的时候,就将此元素值赋给base所在位置,然后j–操作后将base向前赋。二、代码实现public static void insert(i...
2019-06-23 16:23:07 108
原创 【Java】KMP匹配算法简述
KMP匹配算法在做KMP匹配时首先要搞清楚的就是前缀数具体如下:如上图所示,给定一组为ABCABCEFG的单词,要写出它的KMP下标1、首先,前两个字母的下标必为-1、0;因为这里的下标index指的是当前字母的前一个,比如第一个A的index指的就是A的前面,第一个A前面没有字母,所以index=-1;第二个B的前面只有A,不构成相同前后缀,所以为0;2、当有前后缀时如第二个B的...
2019-06-15 12:59:07 120
原创 【Java】冒泡排序、二分法遍历数组
1、冒泡排序属于暴力遍历数组的一种方式。它是将当前数字与下一个数字比较,若当前数字比下一个数字大(小)则向前交换,即向前冒。这样下来每一次遍历数组就能找出一个最大(最小)的数字。而改进的冒泡算法是在遍历数组是先设立一个flage来记录是否冒泡。当flage为true是继续遍历,为flase时表示,上边的循环没有进行交换,即已经拍好了顺序,不用再浪费时间遍历。for (int i = 0; i ...
2019-06-14 21:59:57 666
原创 【Java】链表的实现
【java】链表——单向链表、循环链表、双向链表链表可以有效利用碎片内存,内存利用率高链表插入数据的方法有头插、尾插链表删除数据的方法有头删、尾删1、单向链表的实现class Link<T extends Comparable> { HeadEntry<T> head; public Link() { this.head = ne...
2019-06-14 21:34:57 86
原创 用两个栈实现队列/用两个队列实现栈
用两个栈实现队列1、栈的特点就是先进后出,而队列要做到先进先出,所以两个栈一个用来做入队操作(stack1)一个用来做出队操作(stack2)然后再把没有删完的元素再放到stack1中。具体代码实现过程如下:private T[] stack;// 存储栈的元素的数组// top表示栈顶的位置private int top;public SeqStack(){this(10);}p...
2019-06-10 23:22:44 119
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人