基础知识学习
文章平均质量分 76
littlelufisher
Gensoukyo
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
正则表达式简要学习
综合了Ben Forta《正则表达式必知必会》以及http://www.runoob.com中的一些正则表达式教程,特别是http://www.runoob.com/regexp/regexp-tutorial.html正则表达式是一些用来匹配和处理文本的字符串。正则表达式由一些普通字符和一些元字符(metacharacters)组成。普通字符包括大小写的字母和数字,而元字符则具有特殊的含义。注意...原创 2018-05-10 19:35:39 · 848 阅读 · 0 评论 -
Java同步和多线程2:JUC锁
通过前面的文章我们知道了,可以通过synchronized关键字来进行同步,实现对竞争资源的互斥访问的锁。同步锁的原理是,对于每一个对象,有且仅有一个同步锁;不同的线程能共同访问该同步锁,但是在同一个时间点,该同步锁能且只能被一个线程获取到。这样,获取到同步锁的线程就能进行CPU调度,从而在CPU上执行;而没有获取到同步锁的线程,必须进行等待,直到获取到同步锁之后才能继续运行。这就是,多线程通过同...原创 2018-06-10 20:32:44 · 246 阅读 · 0 评论 -
Java中int的表示方法及其作用
在Java中,int是使用32位表示,long使用64位表示。这两个基本类型都是整形,没有其他的表示方法了。他们内部是怎么表示的呢?是采用补码表示。由于我们经常在做题中会遇到Java的位运算,Java的位运算只能用于int和long型。所以我们有理由好好分析Java内部是怎么用二进制表示的。这里只举int为例子,long是一样的。1、int的范围int在Java内部是用32位来表示的,而最高位是表...原创 2018-06-16 23:09:26 · 20313 阅读 · 0 评论 -
树总结
在这里,我们详细分析各种树的性质和操作。树形结构的特点是一个数据元素可以有很多个直接后继,但只有一个直接前驱。原创 2018-06-02 16:14:47 · 2323 阅读 · 0 评论 -
查找算法
对于查找算法,耳熟能详的就是二分查找了。对于查找算法来说,由于在实际应用中会把数据以一定的数据结构(如二叉树,红黑树等)组织起来,很少会直接使用一个数组或链表对数据直接存储。因此,对数据的查找算法没有排序算法那样多样性,而是都包含在各个数据结构中了。这里的查找算法,仅针对有序的数组的查找。(参考:https://www.cnblogs.com/yw09041432/p/5908444.htmlht...原创 2018-06-02 15:03:04 · 270 阅读 · 0 评论 -
另外一些排序算法:希尔排序、基数排序、桶排序
一、希尔排序希尔排序,其实属于一种特殊的插入排序,是简单排序算法里面的直接插入排序的改进版。希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。希尔排序是基于插入排序的以下两点性质而提出改进方法的:插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率;插入排序一般来说...原创 2018-06-01 11:28:57 · 762 阅读 · 0 评论 -
回溯算法超通俗易懂详尽分析和例题
回溯法是很重要的一种算法,在it企业笔试中经常会遇到。事实上,在各种编程题中,大家或多或少都会接触到这些题目,但是很多人没有对这类题目有个系统性的总结。接下来就对回溯法进行详尽,通俗易懂的分析。 回溯法有通用解法的美称,对于很多问题,如迷宫等都有很好的效果。回溯算法实际上一个类似枚举的深度优先搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,...原创 2018-06-06 19:22:02 · 39636 阅读 · 14 评论 -
三个高级排序算法:快速排序、归并排序、堆排序
接下来的三个高级排序算法,是在实践中经常使用的算法,比起基于比较和交换的三个简单的排序算法,有更快的速度。快速排序和归并排序都属于递归排序算法,对于递归排序算法来说很重要的就是对递归树的理解。一、快速排序快速排序使用了分治法的策略。它的基本思想是,选择一个基准数,通过一趟排序将要排序的数据分割成独立的两部分;其中一部分的所有数据都比另外一部分的所有数据都要小。然后,再按此方法对这两部分数据...原创 2018-05-30 21:15:26 · 7229 阅读 · 0 评论 -
三个简单排序算法:冒泡排序、选择排序、插入排序
以下从基础开始,逐步详细复习各个排序算法。先从三个最基础最简单的排序算法开始。他们分别是冒泡排序、选择排序、插入排序。以下都是java代码,并且认为升序是有序。一、冒泡排序1、代码public class Main{//冒泡排序 public static void main(String[] args){ int[] a=new int[]{1,3,1,2,0,4,5,2,6,2,0};...原创 2018-05-30 20:46:02 · 7580 阅读 · 0 评论 -
图总结
在求职和面试中,图也是很重要的一个领域。而这里面尤其重要的是深度优先搜索、广度优先搜索、最小生成树、最短路径、拓补排序的内容。在这里,我们只抽象地对图及各种算法进行分析,尽量不涉及代码实现。(参考:《Java数据结构和算法》)一、图...原创 2018-06-05 13:56:43 · 737 阅读 · 0 评论 -
Java设计模式2:各个设计模式(模板模式、单例模式、工厂模式、代理模式、装饰器模式、适配器模式、策略模式、观察者模式、迭代器模式)
一、模板模式(Template Pattern)模板模式指的是一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。模板模式事实上才是使用得最多的设计模式,几乎所有OOP的代码都会有意无意碰到。我们以来修房子作为一个例子。public class DesignPattern { public static void main(String...原创 2018-06-13 14:02:19 · 778 阅读 · 0 评论 -
Java设计模式1:面向对象编程的四大特征和设计模式的六大原则
这篇博文算是对《设计模式之禅》的读书笔记。这本书写得非常好,通俗易懂,强烈推荐!另外,也参考了很多其他的资料,包括http://www.runoob.com/design-pattern/design-pattern-tutorial.html以及网上一些博客等,再次表示感谢!之后,我会针对几个重点的设计模式,写一些代码,自己操作熟悉一遍,而其他一些设计模式就在概念上知道即可。一、设计模式...原创 2018-06-11 14:49:19 · 2245 阅读 · 0 评论 -
Java中容器排序
Java中经常需要对容器(一般是ArrayList)进行排序,使用的是Collections类的静态方法Sort。Sort有两个参数,一个接收该容器,另一个是一个Comparator接口。最好在ArrayList中存储的类都必须实现了Comparable接口,且覆盖了compareTo方法(一般Java中大多数类都已经实现过了)。Sort也可以只有一个参数,这个时候是默认升序排序。常用的方法:Ar...原创 2018-05-17 17:02:43 · 3337 阅读 · 0 评论 -
java中BigDecimal类的使用
在Java的各种机试题中,经常会出现一些计算,这些计算的结果和运算数可能会超过内置数据类型的大小。这个时候就需要使用BigDecimal类,它可以进行大数的运算;1、BigDecimal类的初始化有两种方法初始化,一种是使用double类型,一种是使用String类型BigDecimal aDouble =new BigDecimal(1.22);System.out.println("cons...原创 2018-05-17 16:11:33 · 8808 阅读 · 0 评论 -
计算中缀表达式
转载自https://blog.youkuaiyun.com/qq_26286193/article/details/80214805“计算中缀表达式”可以称得上是一个特别经典的关于栈的算法题,几乎在所有数据结构教材中都会涉及,而且很多公司面试或者笔试的时候都会把这道题作为一个考察点。可以说,这是一道必须要掌握的算法题。中缀表达式、后缀表达式等概念在这里就不赘述了,让我们直奔主题。题目:输入一个中缀表达式,计...转载 2018-05-10 20:57:03 · 44486 阅读 · 8 评论 -
如何读C++指针复杂声明?
很多人都会被C++指针的复杂声明搞混了。其实,读C++指针声明的过程,我们可以遵循2个原则:1、从名字开始,右->左->右->左->右这样来读;2、不断对指针内容进行补完(对于指针,我们要知道指针的类型,知道了指针的类型也就是补完了;对于函数,我们要知道函数的参数和返回值,知道了也算是补完了)。举个例子:float (*(* fp)(int,int,int))(int)1、...原创 2018-06-19 15:21:40 · 532 阅读 · 0 评论
分享