
算法和数据结构
文章平均质量分 81
rootlh;
普通开发者如果习惯于在架构师封装好的东西之上,只专注于做业务开发,那久而久之,在技术理解和成长上就会变得迟钝甚至麻木。
展开
-
有序数组\二分查找
有序数组方法:insert传入参数:int value已有:数组int[] array、数组长度int size步骤:1.前往后变量---找到插入位置 2.后往前遍历---腾出空位 3.插入新值 4.数组长度+11public void orderArray(int value){2 int i;3 for(i=0;isize;i++原创 2017-08-16 21:30:33 · 309 阅读 · 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 · 2386 阅读 · 1 评论 -
二叉树
为什么使用树: 数组增删数据太慢 链表查找数据太慢 树结合了数组和链表的优点根结点: 树最上面的节点为根结点。到其它任何节点只能有一条路径。父结点: 结点的上面一个结点。子结点: 结点的下面一个结点。二叉树每个节点最多只能有两个子结点(左结点,右结点)。叶子结点: 没有子结点的结点。原创 2017-08-16 21:37:09 · 223 阅读 · 0 评论 -
快速排序
递归思想:1.将数组划分成两个子数组2.两个子数组递归调用快排函数继续向下划分两个子数组。。。。划分子数组的原则:选取一个基准值A(一般选数组的第一个或最后一个元素),比A小的放左边,比A大的放右边。1//1.划分数组方原创 2017-08-16 21:36:02 · 143 阅读 · 0 评论 -
希尔排序
基于插入排序,提高插入排序的效率思想:1.普通的插入排序是跨度为1的希尔排序2.确定排序跨度,比如跨度为3,则数据每隔3个进行插入排序3.缩小跨度,跨度减小为2,则数据每隔2个进行插入排序4.直到缩小跨度为1-----插入排序优点:每趟希尔排序,都能将比较小的数排在左边,比较大的数排在右边,避免插入排序时,出现很小的数在最右边导致移动元素过多原创 2017-08-16 21:34:49 · 161 阅读 · 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 · 182 阅读 · 0 评论 -
Java实现双向链表/双端链表
普通链表:节点类保留下一节点的引用。链表类只保留头节点的引用,只能从头节点插入删除双端链表:节点类保留下一节点的引用。链表类保留头节点、尾节点的引用,可以从尾节点插入,但只能从头节点删除双向链表:节点类保留上一节点、下一节点的引用。链表类保留头节点、尾节点的引用,可以从尾节点插入删除==========================================原创 2017-08-16 21:33:27 · 306 阅读 · 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 · 217 阅读 · 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 · 180 阅读 · 0 评论 -
JDK7与JDK8中HashMap的区别
关于JDK7中的HashMap源码分析可移步:http://blog.youkuaiyun.com/qq_17305249/article/details/76877193 总的来说,JDK7中的hashMap底层采用了数组+链表的数据结构实现数据存储,随着存储数据量的增大,Hash碰撞会越来越频繁。也就意味着链表会越来越长,查找效率不断降低。 JDK8的出现解决了原创 2017-09-22 23:03:50 · 3030 阅读 · 0 评论