- 博客(33)
- 收藏
- 关注
原创 决策树算法梳理
1.信息论基础信息熵:信息熵是度量样本的集合纯度最常用的一种指标。在信息论和概率统计中,熵是表示随机变量不确定性的度量。联合熵:两个随机变量X,Y的联合分布,可以形成联合熵Joint Entropy,用H(X,Y)表示。条件熵:设有随机变量(X, Y),其联合概率分布为条件熵H(Y|X) 表示在已知随机变量X的条件下随机变量Y的不确定性。随机变量X给定条件下随机变量Y的条件熵H(Y|X),...
2019-03-05 16:00:14 542
原创 机器学习算法基础---逻辑回归
逻辑回归与线性回归的联系与区别第一条:回归模型就是预测一个连续变量(如降水量,价格等)。在分类问题中,预测属于某类的概率,可以看成回归问题。这可以说是使用回归算法的分类方法。第二条:直接使用线性回归的输出作为概率是有问题的,因为其值有可能小于0或者大于1,这是不符合实际情况的,逻辑回归的输出正是[0,1]区间。线性回归只能预测连续的值,分类算法是输出0和1.第三条:线性回归中使用的是最小...
2019-03-02 11:30:01 808
原创 机器学习基础算法梳理
1. 机器学习的一些概念有监督:给学习算法一个数据集。这个数据集由“正确答案”组成。监督 学习分为回归和分类。无监督:给定一组数据,这组数据没有任何标签。我们的目标是发现数据中的特殊结构。泛化能力:是指一个机器学习对于未见过的样本的识别能力。或者称为举一反三或者学以致用的能力。过拟合:学习时选择的模型包含的参数过多,以致于出现这一模型对已知数据预测得很好,对未知数据预测得...
2019-02-28 16:47:17 366
原创 排序算法--归并排序
思路:将两个(或两个以上)有序表合并成一个新的有序表 即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列 代码: public static int[] sort(int[] nums, int low, int high) { int mid = (low + high) / 2; if (low < high) {
2017-08-13 15:55:44 321
原创 磁盘调度算法
常用的磁盘调度算法有四种:先来先服务算法(FCFS) 最短寻道时间优先算法(SSTF) 扫描算法(SCAN) 循环扫描算法(CSCAN) 先来先服务算法(First Come First Service)FCFS算法根据进程请求访问磁盘的先后顺序进行调度,是一种最简单的调度算法。 例1:某一磁盘请求序列(磁道号):98、 183、 37、122、14、124、 65、 61,按照先来先服
2017-08-12 21:55:44 3480
转载 操作系统
一、操作系统引论 操作系统目标 1:方面性,2:有效性,3:可扩展性,4:开放性操作系统基本特性 1:并发、2:共享、3:虚拟、4:异步描述多道批处理、分时、实时操作系统的特点各是什么? 批处理操作系统:多道性、无序性、调度性,系统利用率高、吞吐量大、平均周转时间长、但无交互能力。 分时操作系统:有多路性、独立性、及时性和交互性。 有较好的人机交互的特性,并且可以实现共享主机
2017-08-11 10:57:53 914
原创 数据库封锁协议
1.排它锁(简记X锁),又称写锁 若事物T对数据对象A 加上X锁,则只允许T读取和修改A,其他任何事物再不能对A加任何类型的锁,直到T释放A上的锁 2共享锁(简记S锁),又称读锁 若事物T对数据对象A加上S锁。则其他事物只能对A 加S锁,不能再加X锁,直到T释放A上的S锁常用的封锁协议: 1一级封锁协议:事物T在修改数据R之前必须先对其加X锁,直到事物结束才释放锁 一级封锁协议可防止丢失修
2017-08-06 17:09:28 1057
转载 数据库重要知识
1. 主键 超键 候选键 外键 主 键: 数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合。一个数据列只能有一个主键,且主键的取值不能缺失,即不能为空值(Null)。 超 键: 在关系中能唯一标识元组的属性集称为关系模式的超键。一个属性可以为作为一个超键,多个属性组合在一起也可以作为一个超键。超键包含候选键和主键。 候选键: 是最小超键,即没有冗余元素的超键。 外 键:
2017-08-06 10:04:25 401 1
原创 拓扑排序
由AOV网构造拓扑序列的拓扑排序算法主要是循环执行以下两步,直到不存在入度为0的顶点为止。 (1) 选择一个入度为0的顶点并输出之; (2) 从网中删除此顶点及所有出边。 循环结束后,若输出的顶点数小于网中的顶点数,则输出“有回路”信息,否则输出的顶点序列就是一种拓扑序列。流程展示:
2017-08-02 11:11:51 251
原创 最小生成树算法--prim算法和克鲁斯卡尔算法
首先说一下prim算法: 在网上找的图片流程: 文字解释: 第一步:选取0为顶点,根据图中b知道,他一共有5条路径,选取权值最少的一条,即0—2, 第二步:现在顶点为0和2,根据图中c知一共有4条路径,选取权值最小的,即2—-5 第三步:以1,2,5为顶点,选取权值最小的,一直循环往复,知道找出n个顶点,n-1条边。 注意:其中图中不能出现环路,以为有的边的权值相同,所以最小生成树有时候
2017-08-02 09:01:11 540
原创 哈夫曼树和线索二叉树
线索二叉树的思想来源于二叉树的存储结构中,存在一些空的指针域,因此是否能够将这些空间利用起来,存储一些关于节点间先后顺序的信息,由此产生了线索二叉树。线索二叉树中,线索反映前驱、后继的关系,而指针则体现左右子树。 以二叉链表为例,线索二叉树存储结构上的特点是添加标识符,表明左右指针域究竟存的是指向前驱和后继的线索,还是指向左右子树的指针; 线索二叉树的优势是一旦对一棵二叉树建立了相应的线
2017-08-01 16:20:49 710
原创 时间复杂度分析
关键概念 要分析算法的复杂度,通常需要分析循环的运行.一,假如,某个循环体的复杂度是O(1),那么这个循环的时间复杂度就是O(n). for(int i = 0; i < n; i++){ //一些列复杂度为O(1)的步骤…. } 通常,如果某个循环结构以线性方式运行n次,并且循环体的时间复杂度都是O(1),那么该循环的复杂度就是O(n). 即使,该循环跳过某些常数部
2017-08-01 15:43:56 510
原创 数据结构总复习
核心要点–必须掌握掌握数据结构的基本概念和术语。包括:数据,数据元素,数据项,数据结构等基本概念算法和算法分析:掌握算法,算法的时间复杂度和空间复杂度,掌握算法分析的方法,对一般算法能分析处时间复杂度。还有算法的特性。掌握线性表的定义和逻辑结构,了解线性表的基本运算,掌握顺序表的插入和删除操作及平均时间性能分析熟练掌握单链表,插入和删除操作并分析其时间复杂度了解循环单链表算法和单链表上相
2017-08-01 09:42:58 988
原创 面试--数据结构(5)(树)
树(Tree)是n(n≥0)个结点的有限集。在任意一棵非空树中:(1)有且仅有一个特定的被称为根(Root)的结点;(2)当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1,T2,…,Tm,其中每一个集合本身又是一棵树,并且称为根的子树(SubTree)。 结点拥有的子树数称为结点的度(Degree)。度为0的结点称为叶子(Leaf)或终端结点。度不为0的结点称为非终端结点或分支
2017-07-31 19:18:23 312
转载 计算机网络--MAC 地址
为什么需要介质访问控制子层(MAC)? 介质访问控制子层(MAC)是局域网体系结构中划分的子层,多路访问链路采用共享介质连接所有站点.发送站点通过广播方式发送数据并占用整个带宽,如果有多个站点同时发送信息,就会产生冲突,而在点对点链路网络中就不会存在这样的问题,因为在点对点网络中,目的节点是唯一的,不需要寻址,双方之间的通讯也只在彼此之间产生,不会有其他用户占用这个传输介质,所以,为了解决多路
2017-07-31 19:00:22 1067
转载 计算机网络--数据链路层
在数据链路层工作的主要设备,常见的有网卡,网桥,和二层交换机. 网卡(网络适配器): 网卡,也叫网络适配器,是安装在计算机上,用来连接计算机网络的,是计算机网络中最基础的网络设备,网卡类型总的来说分为有线以太网卡,WLAN无线网卡两大类. 常见的有双绞线以太网卡: 网卡的功能: 网卡和局域网之间的通信是通过电缆或双绞线以串行传输方式进行的,网卡将计算机的数据封装成帧,并且
2017-07-31 18:56:15 367
转载 计算机网络--网络层
为什么要划分网络层? 不用的网络有不同的协议和标准,为了可以在不同网络之间互访,共享双方的资源,并且还要保持每个计算机网络本来的独立性,所以才划分出了网络层,并制定了专门的协议来负责网络间通信. 网络层的主要功能: 1.屏蔽网络差异,提供透明传输. 为传输层提供服务:面向连接的网络服务(虚电路服务)和无连接的网络服务(数据报服务). 2.为网络通信提供路由选择
2017-07-31 18:53:30 947
转载 计算机网络--网络层IP地址
IPv4地址: 我们知道在网络层(TCP/IP体系结构的网际互联层),最重要的一个协议就是IP协议,现在正处于IPv4和IPv6的过渡时期,但目前来说,IPv4仍为主流,所以主要讲Ipv4. IP地址基本格式: 计算机内部IP地址的格式是32位的二进制数表示的,为了让人们看起来方便,通常采用点分十进制来表示IP地址,如192.168.1.25,其中用来分隔各段的那个
2017-07-31 18:48:13 516
转载 计算机网络--传输层
为什么要划分传输层? 既然网络层已经能把源主机上发出的数据传送给目的主机,那么为什么还需要加上一个传输层呢?这就需要我们理解主机用户应用层通信的主体,位于两台网络主机中真正的数据通信主体并不是这两台主机,而是两台主机中的各种网络应用进程.同一时间一台主机上可能有多个进程同时运行,这时候就需要为应用程序提供一个标识,那就是端口.而传输层就是为了提供这种端到端的服务而存在的.下面以一张图来解释.
2017-07-31 18:45:16 372
原创 查找算法(3)--二叉树查找
二叉查找树的定义: 一棵二叉查找树是一棵可能为空的二叉树形,并且关键词各不相同,二叉查找树中的任一结点P,他的左子树中结点的关键词都小于KEY(p),而右子树中结点的关键词都大于kEY(p),并且节点P的左右子树也都是二叉查找树代码展示:package com.jls.tree;public class BinarySearchTree<T extends Comparable<T>>{
2017-07-31 18:18:34 656
原创 查找算法(2)--二分查找算法
二分查找也称折半查找, 流程: 假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。代码展示:public static int bina
2017-07-31 14:22:05 297
原创 查找算法(1)基本概念
*查找表:是由同一类型的数据元素构成的集合 查找表分为静态查找表和动态查找表; 静态查找表:建表,查表,读表 动态查找表:建表,查表,读表,插入,删除关键字:是数据元素中某个关键字的值,可以标识一个数据元素主关键字:可以唯一标识一个数据元素的关键字叫主关键字查找表结果:成功和失败
2017-07-31 10:52:51 221
原创 面试--算法排序(7)(快速排序)
原理:和冒泡排序相似,都是基于交换排序思想的,就是对冒泡排序的改进 流程: ①首先设定一个分界值,通过该分界值将数组分成两部分, ②将大于等于分界值的数据集中到数组右边,小于分界值的数据集中到数组的坐边 ③然后,坐边和右边的数据可以独立排序,对于左侧的数组元素,又可以取一个分界值,将该部分分成左右两部分,同样,右侧也会这样 4重复上述过程,递归代码展示:package com.jls.te
2017-07-31 09:06:52 333
原创 面试--算法排序(6)(冒泡排序)
冒泡排序: 思路就是交换排序,通过相邻数据的交换来达到排序的目的 流程: ①对数组中的各数据,依次比较相邻的两个元素的大小 ②如果前面的数据大于后面的数据就交换两个数据,经过第一轮的多次比较排序后,便可将最小的数据排好 ③再用同样的方法把剩下的数据逐个比较代码展示:package third;public class mp {public static void mp(int a[]){
2017-07-30 21:27:17 254
原创 面试--算法排序(5)(堆排序)
堆排序也是选择排序的一种 堆的定义: 如果有一个关键码K={k1,k2,k3…..}把他的所有元素按照完全二叉树的顺序存储方式放在一个一维数组中。并且满足 ki<=k2i且ki<=k2i+1//小根堆 ki>=k2i且Ki>=K2i+1//大根堆 小根堆效果图: 大根堆效果图 堆排序: 若在输出堆栈的最大值之后,使得剩余n-1个元素的序列又建成一个堆,则得到n个元素中的次大值,如此反
2017-07-30 17:32:28 353
原创 面试---算法排序(4)(选择排序)
选择排序 流程: ①首先从原始数组中选择最小的1个数据,将其和位于第1个位置的数据交换 ②接着从剩下的n-1个数据中选择次小的1个数据,将其和第2个位置的数据交换 ③然后不断重复上述过程代码展示:package third;import java.util.ArrayList;public class xz {public static void xz(int a[]){ for(
2017-07-30 16:09:12 313
原创 面试---算法排序(3)(希尔排序)
shell排序: 严格来说基于插入排序的思想,又称希尔排序或者缩小增量排序 流程: ①将有n 个元素的数组分成n/2个数字序列,第1个数据和第n/2+1个数据为1对,第2个数据和第n/2+2个数据为一对…. ②一次循环使每一个序列队排好顺序 ③然后,再变为n/4个序列,再次排序 ④不断重复上述过程,随着序列减少最后变成一个,也就完成了整个排序代码展示:package third;pub
2017-07-30 12:09:35 495
原创 面试---算法排序(2)(插入排序)
直接插入排序思想: 将一个记录插入到已排好序的有序表中,从而得到一个新的 ,记录数增一的有序表。插入排序算法 通过对未排序的数据执行逐个插入至合适的位置而完成排序工作 流程如下: ①首先对数组的前两个数据进行从小到大的排序 ②接着将第三个数据与排好序的两个数据比较,将第三个数据插入合适的位置 ③然后将第四个数据插入已排好序的前三个数据中 ④不断重复上述过程,直到把最后一个数据插入合适的
2017-07-30 09:43:53 325
原创 面试---算法排序基础(1)
首先了解一下排序中的关键词: 排序:就是把一组记录按照某个域的值递增或递减的次序重新排序的过程主关键字:能唯一标识某一记录标的关键字叫主关键字稳定性:具有相同关键字的记录排序前后保持他们原来的相对次序不变,则称该排序过程具有稳定性内部排序:若排序过程都在内存中进行,则称为内部排序外部排序:若排序过程需要不断的进行内存和外存之间的数据交换,则称为外部排序
2017-07-30 09:25:12 249
原创 面试---数据结构(4)(队列和栈)
1*二者区别* *队列是插入在一端进行而删除在另一端进行 *栈是插入和删除只能在其一端进行的线性表 2*二者特点* *栈–》有序性,先进后出 *队列–》有序性,先进先出3栈的指针永远指向栈顶 判断栈空的条件 top==-1 判断栈满的条件 top==maxStackSize-14链式栈是非顺序存储的,而队列是顺序存储和链式存放5**栈里进行运算使用后缀表达式。** A*
2017-07-30 08:02:46 271
原创 面试---数据结构(3)(链表)
1**除了用数组描述线性表还可以用链表描述线性表** 2在链式描述中,线性表的元素在内存中的存储位置是随机的。每个元素都有一个明确的指针或链指向线性表的下一个元素的位置(即地址) *数组和链表的区别: 在数组中,元素的地址是由数学公式决定的,而在链式描述中,元素的地址是随机分布的 顺序表是顺序存储,非顺序存取,链表是非顺序存储。顺序存取 因此链式表便于插入,删除操作,不便于查询3链表分为单
2017-07-29 21:47:20 258
原创 面试---数据结构(2)(数组)
数组的定义 所谓数组,是无序的元素序列。 若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按无序的形式组织起来的一种形式。 这些无序排列的同类数据元素的集合称为数组。数组是一种线性结构顺序表 特点: 1.数组是相
2017-07-29 08:53:26 579
原创 面试---数据结构基础 (1)
一,数据结构的定义:1,数据的组织形式 2,简单来说数据结构是一门研究非数值计算的程序设计问题中计算 机的操作对象以及他们之间的关系和操作的学科 3,相互之间存在一种或多种特定关系的数据元素的集合 说法1着重强调存储结构,说法2着重强调逻辑结构*二,存储形式 1.线性:数组,串,表,队列,栈 2非线性:树和图 3文件:非线性和线性三,存储结构 顺序结构:数据元素相对位置相邻
2017-07-28 17:48:33 285
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人