数据结构
RookieZc
愿望是世界和平,大家吃好喝好
展开
-
一句一句看源码之LinkedHashSet源码解读
先new一个LinkedHashSet开始吧Ctrl+B走起————————————————————————————————————————一开始是描述的翻译,想看源码解读直接点下面跳注释翻译源码解读注释翻译先把最开始一大堆绿色注释看看吧,我逐段落给大家翻译一下 * <p>Hash table and linked list implementation of the {@code Set} interface, * with predictable iteration orde原创 2020-09-20 21:56:17 · 256 阅读 · 0 评论 -
JAVA基础复习之集合
各种LIST和SET凡是List 都有序可以重复 Set都无序不可以重复Arraylist,LinkedList 常用HashSet 和哈希表有关,一般不同的东西哈希值不同, 但是也存在两个字符串哈希值相同的情况,称为哈希冲突,HashSet把哈希值一样的用链表弄成一串存在一起,JDK1.8加入了红黑树,因为连成一串太长了查找速度也会慢当HashSet里存储自定义数据类型时候要记得重写hashCode和equals方法,才能保证数据不重复比HashSet更进一步的是LinkedHashSet原创 2020-09-20 20:17:42 · 90 阅读 · 0 评论 -
带你逐句代码实现快速排序算法 Java
写代码前先把逻辑思路写出来,循环的起始和结束判断标志写出来,需要输入和输出的参数都理清,一句一句翻译成代码就行1.已知一个数组,我们需要选取一个轴,在一次排序后,让比轴小的数都排在轴前边,让比轴大的数都排到轴后面2.经过上一步,我们可以把数组看成两个新的数组,一个是轴之前的那些数,一个是轴之后的那些,轴就放那了不用动了3.然后对新的俩数组分别进行第一步操作,然后再第二步,循环套娃4.套娃到什么时候结束呢,到新分出来的数组就只包含一个元素,用代码写判断条件就是 数组开头索引不小于结尾索引(就是开头和结原创 2020-08-01 20:27:56 · 272 阅读 · 0 评论 -
希尔排序和归并排序 Java实现代码逐句注释
原理不赘述了上代码 希尔排序:希尔排序是在插入排序的基础上改进的所以代码很像,主要改进之处是减少了数组移动的次数,增加了一个类似步长的概念package SORTS;import java.util.Arrays;public class shell extends tool_method { public static void shell_method(Comparable[] arr) { //下面是利用数组长度求步长的初始值,数组长的一半,向下取整原创 2020-07-31 23:22:50 · 176 阅读 · 0 评论 -
插入排序与冒泡排序的实现区别 附代码讲解
先说重点:1.最大的区别就是内层循环的次数,2.插入排序的内层循环在插入的过程中不是真的把整体向后挪出一个空再插入值,而是那个待插入值从后面一个一个往前拱到该去的位置,然后发现前面拱不动了停下,下一个值开始从后面拱一开始我觉得这两个算法的代码特别像,有一些博客抄来抄去也没写对,然后看了下面这个网站豁然开朗,这个网页可视化了常见排序算法,看完还不明白再看我的拙见。很多教程都讲插入排序是像打扑克时候一样直接把几张牌往后挪然后插进去,这太有迷惑性了,实际上算法是一张一张往前挪举个例子比如手里有 1,原创 2020-07-30 23:14:58 · 563 阅读 · 1 评论