随笔分类 - Java算法
摘要:接下来学习B-tree和哈夫曼算法,只是浅显的了解一下。 B-Tree B-tree就是balanced tree,即多路平衡查找树,其相比于上次学习的二叉查找树有很多优点,初步的映象就是能存储更多的数据,在做磁盘IO时一次读取一个page的数据时能返回更多有用的信息,而二叉查找树则比较浪费空间,一
阅读全文
摘要:前面有学习过二叉树,二叉搜索树(也叫做二叉查找树或者二叉排序树)也是一种二叉树,主要其搜索速度非常快,接下来了解一下。 二叉搜索树特点 (1)如果左子树不为空,则左子树上的结点的值都小于根结点 (2)如果右子树不为空,则右子树上的结点的值都大于根结点 (3)子树同样满足上述两点 如下就是一颗典型的二
阅读全文
摘要:树论基础部分在以前学习数组链表时有简单了解,二叉树遍历没有学习过,这里跟着子龙老师学习下二叉树遍历,最后再学习归并排序。 树形结构 树是数据结构与算法中一种非常重要的结构,是由N个具有层次的结点组成,其具有以下特点: (1)有一个根结点,一般称为root结点 (2)每一个元素称为node (3)除了
阅读全文
摘要:接下来学习贪心算法和动态规划,学习的过程中由于看的是录播,发现老师上课发现人有些没来有些许失落,下次在没有确定有充足时间的情况下,取消一切网络课程的报名。 贪心算法 贪心算法在求解某个问题时,总是做出眼前的最大利益,也就是说只顾眼前不顾大局,所以他是局部最优解。贪心算法不是对所有问题都能得到整体最好
阅读全文
摘要:最近在学习贪心算法和动态规划的过程中,里面有一段自然排序的操作,顺便简单了解一下Java中对象比较后排序要使用的两个接口:Comparable和Comparator。如果是数字,直接比较就行,但是如果是对象,如何比较后排序呢?就需要用到这两个接口了,并且将自己定义的类作为参数传入接口泛型,在接口里重
阅读全文
摘要:开始学习第二课,排序相关的知识,以前只接触过冒泡排序,今天还学习了其他的排序方法,主要学习了选择排序、冒泡排序、插入排序,希尔排序和快速排序。 主要排序方法 主要排序方法的解释,其中部分借鉴了百度,主体内容为子龙老师的讲解内容。另外代码中对for循环代码进行优化,以及元素交换做出了新的思路讲解,表示
阅读全文
摘要:算法就是解决问题的步骤,在一般的项目中可能用不上,但是一旦涉及到高并发,高性能时,就不得不考虑算法的优劣。 设计原则和特性 设计原则:正确性,可读性,健壮性,高效率和低存储 特性:有穷性,确定性,可行性,有输入,有输出。 算法题入门体验 如何判断是一个数是2的整数次幂?常规方法使用循环,但是在学习了
阅读全文
摘要:数据结构部分,复习栈,队列,数组,链表和红黑树,参考博客和资料学习后记录到这里方便以后查看,感谢被引用的博主。 栈 栈(stack)又称为堆栈,是线性表,它只能从栈顶进入和取出元素,有先进后出,后进先出(LIFO, last in first out)的原则,并且不允许在除了栈顶以外任何位置进行添加
阅读全文