自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 数据结构与算法 [4 高级排序]

高级排序 出现的意义:因为之前的简单排序时间复杂度都是O(N^2),不适合大量数据的排序,所以出现高级排序来争取降低算法的时间复杂度的最高阶次幂。 希尔排序(插入排序的改良版本) 希尔排序是插入排序的一种,又称"缩小增量排序",是插入排序算法的一种高效的改良版本,就是分组版的插入排序 原理: 1.选定一个增长量h,按照增长量h作为数据分组的依据,对数据进行分组。 增长量h的确定:增长量h的值有固定的原则int h = 1; while(h<数组的长度/2){ h = 2h+1; } //

2020-11-02 14:31:46 85

原创 数据结构与算法[3 简单排序]

Comparable 实现排序的时候要实现comparable接口 重写compareTo方法 示例:return this.age - o.age; 根据返回的result的值,判断谁大谁小。 冒泡排序 原理: 比较相邻的元素,如果前一个元素比后一个元素大,就交换这两个元素的位置 对每一对相邻元素做相同的工作,从开始第一队元素到结尾的最后一对元素,最终最后位置的元素就是最大值 冒泡排序的API设计 冒泡排序的时间复杂度分析 O(n^2) 适用于输入规模比较少的时候。 ...

2020-10-12 12:54:19 73

原创 数据结构与算法[2 算法的时间/空间复杂度]

算法的时间复杂度 时间消耗取决于: 算法采用的策略和方案 编译产生的代码质量:无法干预 问题的输入规模(输入量的多少) 机器执行指令的速度 :无法干预 事后分析估算方法:有弊端,吃硬件配置 事前分析估算方法:这样的话,是我们在计算机程序编写之前对程序进行预估,不会有其他因素的干扰。 只考虑核心代码的执行次数,这样可以简化分析。 得出结论:时间复杂度的分析核心就是 核心操作的次数 输入规模 函数渐进增长 当有一个整数N,使得当n>N时,f(n)总是>g(n

2020-10-08 17:44:20 254

原创 数据结构与算法[1 概念]

数据结构 什么是数据结构? 数据结构就是把数据元素按照一定的关系组织起来的集合,用来组织和存储数据。 数据结构的分类 逻辑结构:从具体问题中抽象出来的模型,是抽象意义上的结构,按照对象中数据元素之间的相互关系分类。 集合结构:集合结构中数据元素除了属于同一个集合外,彼此之间没有任何的关系 线性结构:一对一的关系 树形结构:一对多的关系 图形结构:多对多的关系 物理结构:逻辑结构在计算机中真正的表示方式(映像)成为物理结构,也可以被叫做存储结构,常见的有顺序存储结构和链式存储结构。 顺序

2020-10-08 14:45:07 58

原创 Git

Git 1.版本控制 版本控制(Revision control):是一种在开发的过程中,用于管理我们对文件,目录或工程等内容的修改历史,方便查看更改历史记录,备份以便回复以前的版本的软件工程技术 简单来说是用于管理多人协同开发项目的技术,Git就是一种版本控制器 本地版本控制: 纪录文件每次的更新,可以对每个版本做一个快照,或是纪录补丁文件,适合个人用。 集中版本控制: 所有的版本数据都保存在服务器上,协同开发者从服务器上同步更新或上传自己的修改,有个问题:所有的版本数据都存在服务器上,用户的本地

2020-10-07 12:26:45 227

原创 多线程

多线程的学习 1.线程的三种创建方式 ①继承Thread类 extends Thread 重写run()方法 用start()开启线程 ②实现Runnable接口(重要) implements Runnable 重写run()方法, Thread th = new Thread(new TestThread4(),“小明”).start(); ③实现Callable接口 implements Callable< String >,< >中,可以为Boolea

2020-10-02 19:28:29 1236

原创 注解

注解 1.注解(Annotation) 位于lang包中,格式为:@xxx,可以被其他的程序读取。 2.内置注解: @Override :重写 @Deprecated :不推荐使用 @SuppressWarnings(“all”):用于抑制编译时的警告信息(不推荐使用,会降低程序的准确性) 3.元注解 元注解的作用就是负责注解其他注解 有四个标准的meta-annotation类型 [1]@Target(value=ElementType.xxx):代表我们的注解可以用在什么地方。 [2]

2020-09-30 14:11:49 53

原创 反射

反射(Reflection) Java 是一门静态语言,而由于反射的出现,从静态语言。变成了"准动态的语言" Reflection是Java被视为动态语言的关键 反射机制允许程序在执行期间,借助于Reflection API来取得任何类的内部信息,并能直接操作任意对象的内部属性以及方法。 在加载完类后,会在方法区中产生一个class类型的对象,这个class对象包含了完整的类的结构信息,反射就好像一面镜子一样,可以通过这个对象看到类的结构。 优点:可以实现动态创建对象和编译,体现出很大的灵活性。 缺点:会

2020-09-30 14:11:14 94

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除