算法和数据结构
文章平均质量分 81
rootlh;
普通开发者如果习惯于在架构师封装好的东西之上,只专注于做业务开发,那久而久之,在技术理解和成长上就会变得迟钝甚至麻木。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
有序数组\二分查找
有序数组 方法:insert 传入参数:int value 已有:数组int[] array、数组长度int size 步骤:1.前往后变量---找到插入位置 2.后往前遍历---腾出空位 3.插入新值 4.数组长度+1 1public void orderArray(int value){2 int i;3 for(i=0;isize;i++原创 2017-08-16 21:30:33 · 318 阅读 · 0 评论 -
运用ForkJoin多线程框架实现归并排序
一、普通归并排序 1public class MergeSort {23 /**4 * 原地归并排序(每次只将数组分为大和小两部分,并不是完全排序完成。需要递归)5 *6 * @param arr7 * @param lo8 * @param mid9 * @param hi10 */11 public void m原创 2017-09-05 16:51:03 · 2398 阅读 · 1 评论 -
二叉树
为什么使用树: 数组增删数据太慢 链表查找数据太慢 树结合了数组和链表的优点 根结点: 树最上面的节点为根结点。到其它任何节点只能有一条路径。 父结点: 结点的上面一个结点。 子结点: 结点的下面一个结点。二叉树每个节点最多只能有两个子结点(左结点,右结点)。 叶子结点: 没有子结点的结点。原创 2017-08-16 21:37:09 · 235 阅读 · 0 评论 -
快速排序
递归思想: 1.将数组划分成两个子数组 2.两个子数组递归调用快排函数继续向下划分两个子数组。。。。 划分子数组的原则: 选取一个基准值A(一般选数组的第一个或最后一个元素),比A小的放左边,比A大的放右边。 1 //1.划分数组方原创 2017-08-16 21:36:02 · 152 阅读 · 0 评论 -
希尔排序
基于插入排序,提高插入排序的效率 思想: 1.普通的插入排序是跨度为1的希尔排序 2.确定排序跨度,比如跨度为3,则数据每隔3个进行插入排序 3.缩小跨度,跨度减小为2,则数据每隔2个进行插入排序 4.直到缩小跨度为1-----插入排序 优点: 每趟希尔排序,都能将比较小的数排在左边,比较大的数排在右边,避免插入排序时,出现很小的数在最右边导致移动元素过多原创 2017-08-16 21:34:49 · 176 阅读 · 0 评论 -
Java递归
实现斐波那契数列: 1public int getNumber(int n){//n表示项数2 if(n == 1){//第一项为13 return 1;4 }else if(n == 2){//第二项为25 return 2;6 }else{//第n项为第n-1项加第n-2项7 return getNumber(n-1原创 2017-08-16 21:34:03 · 196 阅读 · 0 评论 -
Java实现双向链表/双端链表
普通链表: 节点类保留下一节点的引用。链表类只保留头节点的引用,只能从头节点插入删除 双端链表: 节点类保留下一节点的引用。链表类保留头节点、尾节点的引用,可以从尾节点插入,但只能从头节点删除 双向链表: 节点类保留上一节点、下一节点的引用。链表类保留头节点、尾节点的引用,可以从尾节点插入删除 ==========================================原创 2017-08-16 21:33:27 · 316 阅读 · 0 评论 -
Java实现栈\队列\链表
栈: 底层数组 栈顶指针 1public class MyStack{2 private int[] arr;3 private int top;4 //默认构造方法5 public MyStack(){6 arr = new int[10];7 top = -1;8 }9 //自定义构造器,自定义初始化栈大原创 2017-08-16 21:32:02 · 235 阅读 · 0 评论 -
简单排序算法
冒泡排序: 两重循环---前往后 length-1 趟(每趟排一个数),后往i(最小的往前冒) 每趟都把最小的换到最前面 i (0,length-1):第几趟(每一趟都把最小的放在前面) j(length-1,i):第几个 1public void bubbleSort(int[] array){2 for(int i=0;iarray.length-1原创 2017-08-16 21:31:26 · 190 阅读 · 0 评论 -
JDK7与JDK8中HashMap的区别
关于JDK7中的HashMap源码分析可移步:http://blog.csdn.net/qq_17305249/article/details/76877193 总的来说,JDK7中的hashMap底层采用了数组+链表的数据结构实现数据存储,随着存储数据量的增大,Hash碰撞会越来越频繁。也就意味着链表会越来越长,查找效率不断降低。 JDK8的出现解决了原创 2017-09-22 23:03:50 · 3047 阅读 · 0 评论
分享