![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
基础知识笔记
Linus Benedict
这个作者很懒,什么都没留下…
展开
-
java中的继承-子类继承父类的权限问题
java中的继承 Java语言面向对象有三大特性:封装、继承、多态。其中的继承,描述了一种“is-a”的关系,可以理解为子集合和父集合。子类可以继承父类的方法、域、构造方法。但是,java中的变量都是有权限的,子类继承的时候要不要考虑呢?class A{ public int x=10; public static int y=20; public sta原创 2017-05-05 14:32:31 · 2500 阅读 · 0 评论 -
JAVA常用排序算法之直接插入排序
在JAVA开发的过程中,排序算法是不可获取的一种重要的算法。本文将首先讨论一下直接选择排序。 直接选择排序的思想是:将一组无序的数据一个一个的排序好,后一个数据插入已经有序排列的序列中。这样不断地循环比较、插入,最后所有的数据都会有序排列。该算法的时间复杂度为O(N^2)。 改进:算法中引进了附加记录称为监视哨或者哨兵。 public class Demo1 { /*...原创 2017-05-16 12:47:38 · 432 阅读 · 0 评论 -
JAVA常用排序算法之冒泡排序
JAVA常用排序算法之冒泡排序。 冒泡排序,顾名思义就是像气泡一样将大的数据一个一个地升上来。 具体的思路如下:将相邻的两个元素进行比较,将大的往后排,第一遍之后最大的就在最后面。除了最后一个元素,再进行上述的比较,直到只剩一个元素为止。 冒泡排序一般不使用,因为速度较慢。最好的情况下,只需要比较N次,时间复杂度是O(N)。最坏的情况下,整个序列都是反序的,需要进行N-1次的循环,每次循环需...原创 2017-05-16 16:05:34 · 300 阅读 · 0 评论 -
JAVA常用查找之二分查找法
JAVA常用查找之二分查找法。 具体的实现过程如下:将N个排序好的数据分成两个部分,如果要查找的数据大于中间的值,就在右边的数据中查找,反之则在左边的数据中查找。不断地重复上述过程,直到找到中间数据和需要查找的数据相等或者不等。第一次查找,索引为N/2,第二次为N/4,第三次为N/2^3,一直循环下去,直到N/2^k。因为N/2^k》=1,所以K<=log2N。时间复杂度为O(N)=log...原创 2017-05-16 16:39:57 · 499 阅读 · 0 评论 -
JAVA常用排序算法之简单选择排序
JAVA常用排序算法之简单选择排序。 常用于取序列最大与最小的几个数时,这是一种不稳定的排序算法。当i=1时,需要进行n-1次比较,当i=2时,需要进行n-2次比较,依次类推,共需要(n-1)+(n-2)+…+2+1=n(n-1)/2次比较,所以时间复杂度是O(N^2),进行移动操作的时间复杂度为O(N)。 算法的步骤是:首先将第一个和后面的所有的数进行比较,将最小的放在前面。然后从第二个开始重...原创 2017-05-16 22:04:13 · 366 阅读 · 0 评论 -
JAVA常用排序算法之快速排序
JAVA常用排序算法之快速排序。 快速排序是冒泡排序的一种改进,要求排序速度较快。同样,这也是一种不稳定的算法。 具体的实现方式如下:首先设定一个初始值,然后进行比较,大于初始值的放在左边,小于初始值的放在右边,然后递归的进行左边和右边的比较。 算法的平均时间复杂度为O(n×log2(n))。 实现的代码如下: public class Demo6 { /** ...原创 2017-05-17 09:46:24 · 554 阅读 · 0 评论 -
数据结构之二叉查找树
树,做为一种相对基础的数据结构,被广泛的应用于数据存储和查找中。 一般来说,定义树是用递归的方式,树是一些节点的集合。集合可以是空的,也可以是非空。如果不是非空,那么就是由一个根节点和0个或者多个的非空节点的字树组成,子树都由一一条来自根节点的有向的边所连结。一颗树是N个节点和N-1条边的集合。没有子的节点被称为树叶。N1到Ni的路径定义为路径。根节点到Ni的唯一路径称为深度。Ni的高是指从它到...原创 2017-06-23 20:29:46 · 255 阅读 · 0 评论 -
java常用排序之希尔排序
JAVA常用排序算法之希尔排序 希尔排序是直接插入排序的一种改进,这是一种不稳定的算法。 具体的实现方式如下:设定增量,让两个数字进行比较,然后调换位置。举个例子,32,15,78,24,22,78,11先设置增量为3,那么就是将32和24进行比较,32更大,调换位置。然后依次向后比较,将整个数组变成基本有序(就是大的数字基本在后面,小的数字基本在前面)。注意,最后一个增量一定要设置为1。 ...原创 2017-09-05 15:36:01 · 318 阅读 · 0 评论 -
java常用排序之归并排序
JAVA常用排序算法之归并排序 具体的实现方式如下: 算法的平均时间复杂度为O(n×log(n))。 实现的代码如下: import java.util.ArrayList; import java.util.List; public class MergeSort { public static void main(String[] args) { ...原创 2018-11-08 20:36:56 · 134 阅读 · 0 评论 -
java常用排序算法之堆排序
JAVA常用排序算法之堆排序 算法的平均时间复杂度为O(n×log(n)) 实现的代码如下: package com.beibei.risk.sort; /** * desc:堆排序算法,使用大根堆 * Created by zhai on 2017/9/7. */ public class HeadSort { public static void main(...原创 2018-11-08 20:37:59 · 168 阅读 · 0 评论 -
小结 -2017-8-13
最近一段时间关于java编程思想的总结: 1.使用接口技术的重要性,可以扩展,可以多重实现,软件的开闭原则,不能修改,可以添加扩展 2.方法可以多,逻辑一定要清晰,逻辑太复杂可能是方法不太好,方法尽量干净,可以重复地使用 4.代码量尽量少,逻辑要清晰,不能相同重复过长的代码表示一个意思 5,,解决问题的思路很重要,每一行代码表示什么逻辑意思要清楚,当然解决问题的思路会因为一门语言的设计思想...原创 2017-08-13 00:34:28 · 292 阅读 · 0 评论 -
java设计模式之外观模式
外观模式又被称为Facade模式,解决类之间的耦合,将所有的类的关系放置在一个Facade类中 public class Facade { public static void main(String[]args){ Computer computer = new Computer(); computer.startUp(); computer.shutDown(); } }...原创 2018-11-21 21:39:36 · 146 阅读 · 0 评论