自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 计算广告相关知识

产品+工程优化+策略算法 一专多能最优化:凸优化、数值优化(偏工程)1.1、无约束优化问题:目标函数不可导时:下降单纯型法目标函数可求导:梯度下降法梯度下降:1.随机梯度下降(比较好用)2.批处理模式(一般不work)拟牛顿法:BFGS 、L-BFGS(解决Hession阵过大的问题)拟牛顿法:先定方向,后定步长Trust-...

2019-10-23 14:09:07 197

原创 计算机系统基础漫游(一)计算机结构

冯·诺依曼结构:存储程序工作方式:将事先编写好的程序及原始数据送入主存并启动执行,一旦程序被启动,计算机应能在不需操作人员干预下,自动完成逐条取出指令和执行指令的任务主要思想:主存+自动逐条取指令部件+执行指令部件+程序由指令组成+指令描述如何处理数据+应有将程序及数据输入计算机的部件++运算结果输出早期部件之间采用分散方式相连,现在部件之间大多用总线方式相连现代计算机结构...

2019-10-07 21:40:57 177

原创 基本TCP套接字编程

socket函数:#include<sys/socket.h>int socket(int family,int type,int protocol);返回值:若成功则返回非负描述符,若失败则返回-1family:协议族IPV4、IPV6等type:字节流、数据包等protocol:TCP、UDP等connect函数:#include<sys/...

2019-09-05 17:09:32 174

原创 手撕代码规范性问题

命名:类型、变量、函数、常量、宏类型命名:每个单词以大写字母开头,不包含下划线eg:MyExcitingClass、MyExcitingEnum变量命名:1.变量名一律小写,单词间下划线相连,类的数据成员后加下划线,结构体的数据成员不需要在后面加下划线eg:my_exciting_local_variable、my_exciting_member_variable_2....

2019-09-02 23:04:54 187

原创 线程池

Linux Posix Thread一请求一线程线程:8M的空间1w个请求,不能分配这么多引入线程池:不需要每一次创建 使用完线程时,不需要销毁,返回就ok 异步解耦的作用把任务丢给线程池,调度分配执行这个任务主任务上面,只需要把任务丢给线程池,异步的作用,10倍!问题:如何取一个线程? 如何归还给线程池 线程池里面控制线程数量?...

2019-07-16 09:06:47 119

转载 Linux IO模式及 select、poll、epoll详解

Linux IO模式及 select、poll、epoll详解linux 服务器开发179k 次阅读 · 读完需要 50 分钟https://segmentfault.com/a/1190000003063859#articleHeader18注:本文是对众多博客的学习和总结,可能存在理解错误。请带着怀疑的眼光,同时如果有错误希望能指出。同步IO和异步IO,阻塞...

2019-07-10 16:27:08 93

原创 智能指针:设计一个class 让其行为像一个指针

pointer-like classes要不指针能再多做一些事情->()老手也不太懂,->可以一直作用下去一定带着正常指针迭代器:有点懵啊! 这一页!!!...

2019-05-29 22:59:14 219

原创 C++程序设计2-兼谈对象模型

勿在浮沙筑高台正规、大器的编程素养,继续探讨更多技术泛型编程和面向对象编程是两条不同的技术路线传统版本的STL:整个标准库是泛型编程 而非 面向对象继承和多态用的不多1.转换函数:类型转换:A/Bc++说你不用写返回类型,名称里面已经写了,转换,不需要参数const:不应该改变转换是隐式的?有没有写全局的函数+?左为整数或浮点数,右为Fra...

2019-05-29 22:13:27 139

原创 侯捷:面向对象-上10

static:1.静态成员函数与非静态成员函数的区别在于:静态成员函数没有this指针,只能存取静态数据2.静态数据:类外定义调用静态函数:1.对象调用2.class name来调用普通成员函数:编译器自动补this指针单例模式:静态staticcout:<<重载了好多模板:函数模板:类模板有<>,函数模板需要...

2019-05-22 10:14:25 91

转载 C++:继承访问属性(public/protected/private)

https://www.cnblogs.com/duwenxing/p/7476469.html• 公有继承(public)公有继承在C++中是最常用的一种继承方式,我们先来看一个示例: 1 #include<iostream> 2 using namespace std; 3 class Father{ 4 public: 5 Father()=de...

2019-05-15 10:45:45 228

原创 贪心和从暴力递归到动态规划

1.切黄金问题哈夫曼编码的经典问题当堆里面只剩一个元素时,停小根堆:所有数,总是拿出两个最小的,拼,记录,放回堆,循环进行通过定义比较器,可以实现不同的堆计算从底向上,切割顺序从上到下力争每两次切的时候差不多!2.项目花费利润问题启动资金W,一次只能做一个项目最多能做项目K小于W的都弹出小根堆(花费),大根堆(利润)接收弹出的所有,弹出大根堆...

2019-05-13 23:09:52 442

原创 前缀树与贪心

前缀树:插入操作:toCharArray:这个函数是将字符串转换为字符数组,牛逼啊;nexts[],代表26个字母,0~25,代表A~Z初始化26,代表着26种可能,即A~Z删除操作:在JVM中就不需要再释放了对c++来说,要遍历后,依次析构释放强烈建议:将字母放在边上贪心策略的正确性的证明?千万别纠结贪心策略代码不会超...

2019-05-11 23:05:01 194

原创 并查集及岛问题

并查集将3、4、5直接连成1,再返回设计分治任务,多任务并行的思路双层for循环遍历感染函数变2遇2和0时,跳过多任务的解决思想保证不重复减的例子处理边界点,应用并查集,进行判断以及合并拓扑结构合在一起spark维护并查集?合并过程的细节?难为面试官最关键的问题在于处理边界...

2019-05-11 22:11:04 338

原创 哈希函数和哈希表

经典哈希函数的性质(散列函数)1.输入域无穷大2.输出域是有穷尽的3.输入参数相同,返回哈希值不变(不是随机函数)4.输入不同,哈希值亦可能相同,哈希碰撞5.离散性:举例:input-0~98,out-0、1、2,得出结果,差不多33个分布在0上,差不多33个分布在1上,差不多33个分布在2上(最重要的)特征:1.与输入规律无关,是一个打乱的过程(打乱函数,否则无法做均...

2019-05-08 16:31:12 1812

原创 互斥方法

1.禁用中断:无中断则无切换屏蔽中断后,硬件事件无法得到及时的响应 针对于临界区很小的情况是有效的 多CPU并行执行时,只屏蔽一个CPU是无用的,无法解决互斥问题2.软件方法必须交替运行临界区三大属性:progress、互斥,不会无限等待无互斥性反证法dex算法:N进程解决方法1:N进程解决方法2:共...

2019-04-23 10:56:59 1331

原创 互斥问题

多道程序设计:共享资源、加速、模块化,合作的进程上下文切换后,寄存器恢复至原值,因此新的PID都是100,与预期不一致期望结果:锁其实是钥匙,是权限!1.不确定性2.难以重现线程不会去检查自己的Note的...

2019-04-22 23:28:11 680

原创 操作系统-进程管理

操作系统跑一个程序跑更多的程序,或一个程序跑了好几次更好的表示程序的执行过程进程:一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程进程的组成:核心态:例如内核代表进程在硬盘中进行处理CPU从一个进程切换到另一个进程!(做蛋糕->医疗救护)进程的特点:动态、并发、独立性(不被破坏正确执行,内存管理,页表,缺页异常、页错误...

2019-04-22 16:12:15 141

原创 进程调度

上下文切换:CPU调度:什么时候调度?状态转换时,与运行相关的状态转换!内核运行调度程序的条件:1.一个进程从运行态切换到等待状态2.一个进程被终结不可抢占:早期操作系统的设计方案。可以抢占:抢占与不可抢占:包含用户级及内核级的调度原则:评价指标:举例:响应时间/吞吐量及时处理输入最小响应时间,最大吞...

2019-04-22 16:12:01 116

转载 Linux下安装gcc和g++

Linux下安装gcc和g++  以CentOS为例,安装后是没有C语言和C++编译环境的,需要手动安装,最简单的是用yum的方式安装,过程如下:1、安装gccyum install gcc询问是否,按y键回车即可,或者yum -y install gcc不用确定全部就安装好了。2、安装g++yum install gcc-c++或者yum -y inst...

2019-04-22 15:34:33 1190

原创 页面置换算法(局部、全局)-局部性很关键

功能与目标:页面锁定!更少的缺页中断,更优的性能最优页面置换算法:理想情况,作为评价标准最长占用时间:维护了一个链表,要注意最久未被使用:程序的局部性原理每次访问,都需要查找栈,比较费时的找一个方法,效果又好,效率又高SX-BYTE,操作系统定期清零该位二次机会法:访问:读操作还是写操作,若是读操作的话...

2019-04-22 09:57:14 7072 1

原创 上下文切换及进程控制(创建、加载、执行、等待和终止)

寄存器:程序计数器、栈指针(调用关系以及相应局部变量的所在位置)等,进程切换后,将信息存储入进程控制块恢复至CPU僵尸队列fork是一个完全的复制,怎么执行的呢?想一想进程的定义!exec之后:在一个3次循环中,fork出不止8个!进程的创建顺序卧槽,好多copy_memory\copy_thread空...

2019-04-19 16:33:10 152

原创 OS-线程

为什么要线程:线程管理:threadread()阻塞了整个进程多进程实现:线程:进程当中的一条执行流程重新看待进程:资源平台(管理资源)+线程=进程资源平台:地址空间(代码段、数据段)、打开的文件等有独立的部分,也有共享的部分线程=进程-共享资源安全可靠性没有保障应用场景:强调性能-线程浏览器基本都采用进程的机...

2019-04-18 11:11:38 941

原创 OS-进程的生命周期原理

进程生命期:进程创建、进程运行、进程等待、进程唤醒、进程结束进程创建:操作系统自主创建一个init进程进程运行:内核选择一个就绪的进程,让它占用处理机并执行进程等待(阻塞):1.请求并等待系统服务,无法马上完成 2.启动某种操作,无法马上完成 3.需要的数据没有到达进程等待时不再占用CPU进程的等待只能由自己发起!进程唤醒:等待->就绪...

2019-04-18 10:24:51 503

原创 进程-进程控制块

PCB具体包含什么信息?如何组织?进程的状态转换?处理机就是CPU 状态信息实际都保存在寄存器中控制信息:PCB的组织方式:链表/索引表 一般采用链表 动态插入删除 取决于进程的特点...

2019-04-18 09:50:44 703

原创 操作系统-启动、中断、异常和系统调用

启动:cpu、内存、IODISK:存放OSBIOS:基本I/O处理系统Bootloader:加载OS至内存内存预先存放BIOS,BIOS将bootloader加载至内存,bootloader将OS加载至内存操作系统与设备和程序交互:系统调用、异常、中断系统调用:应用程序主动向操作系统发出服务请求异常:非法指令或者其他坏的处理状态,来源于不良的应用程序...

2019-04-17 23:17:13 375

原创 操作系统

操作系统特征:1.并发并发是一个时间段内(单cpu)并行是一个时间点(多cpu)2.共享1.“同时访问”2.互斥共享3.虚拟cpu虚拟成进程、磁盘虚拟成文件、内存虚拟成地址空间,一台物理机器虚拟为多台机器4.异步程序执行走走停停课本知识的老化性进程调度、磁盘IO调度已经由硬件来完成了?cpu调度器、物理内存管理、虚拟内存管理文件系统管...

2019-04-17 22:24:26 107

原创 c++const修饰指针

1.const在*之后:int *const p;指针本身是常量,可以通过解引用改变其所指地址的变量值,但其所指地址是不可以改变;2.const 在*前指针所指地址内的变量不可以改变,指针所指地址可以改变,即不可以通过解引用来改变变量值3.前后都有的情况,则都不可以改变...

2019-04-06 16:53:12 235

原创 抽象工厂模式

与工厂方法是同一类模式,依然是绕开new的面临的问题:一系列相互依赖的对象创建面临多种不同数据库的变化!3个指令,被声明为3个类!3个类对应3个基类,3个基类对应3个工厂基类先创建虚基类!1.数据库访问有关的基类:3个2.支持SQL server的类:派生3.支持Oracle的类:派生先把左边换掉那么new该怎么办?回忆之前的工厂模式生成1....

2019-04-04 11:38:08 78

原创 工厂模式

是“对象创建模式”一类的设计模式。通过“对象创建”模式,绕开new,(new带来了细节依赖)来避免对象创建(new)过程中所导致的紧耦合(依赖具体类,加粗部分),从而支持对象创建的稳定。它是接口抽象之后的第一步操作。动机:创建对象,需求较多,需要创建不同类型的对象二进制文件分割器;文本文件分割器;视频文件分割器;图片文件分割器;音频文件分割器;基类!面向接口编程:依赖倒置原...

2019-04-03 23:46:29 107

原创 单例模式

不可以不写拷贝构造及构造,因为如果不写,系统会默认生成public的形式的单线程环境下是Ok的thread Athread B为什么锁的代价过高已经创建一个对象了又来了两个线程,此时已经没有必要加锁了,因为此时是读操作了读操作是不需要加锁的写操作是需要加锁的高并发:10W人同时在线,那么锁的代价就很高双检查锁不可以用!!!!!重叠if的意...

2019-04-03 23:00:17 191

原创 红黑树

适度平衡的标准:任意节点的左右子树的高度,相差不得超过两倍。由红黑节点组成的二叉搜索树若满足以下条件,即为红黑树1.树根始终为黑色2.外部节点均为黑色3.其余节点若为红色,则其孩子节点必为黑色4.从任意一外部节点到根节点的沿途,黑节点数目相等特性4是为了保证适度平衡的标准!红节点均为内部节点,红节点不连续红节点之父必为黑色红黑树能保证增删查改等基本操作的最坏情况...

2019-03-26 10:28:51 142

原创 二叉树的先序、中序、后序遍历的递归及非递归形式以及一些树的题目

二叉树的节点遍历顺序,节点遍历顺序是不变的,问题在于将打印节点的语句放在哪里,因此将打印时机放在第几次来到这个节点会造成遍历顺序的不同;第一次来到这个节点,被称作先序遍历,第二次来到这个节点被称作中序遍历,第三次来到这个节点被称作后序遍历!递归式的二叉树遍历,每一个节点都将出现3次!非递归的先序遍历:stack弹出并打印当前节点,针对于当前节点,以先右后左的顺序...

2019-03-24 22:50:47 644

原创 数组结构实现栈及队列结构

轻量级题目!固定数组实现栈固定数组实现队列:引入size解耦,以使start和end相互独立,循环利用数组婊子和牌坊的问题!:弹栈操作轻量级:换引用,我尼玛,牛逼啊!Data栈、Help栈,push到只剩一个,弹出,转换引用!栈结构实现队列结构:1.要倒一次倒完2.若pop栈中有数就不要再倒猫狗队列问题:略;宏观问...

2019-03-22 22:41:59 187

原创 SQL入门

1.SQL-查库语言敢查库,能统计table(类)/columns(属性)/rows id一行一个对象3..三个工具:SQLBoltExcel金老师手册例:select id,title,year from movies limit 3;select * from movies limit3;假设 movies表 100w个...

2019-03-18 21:07:46 683

原创 排序算法的稳定性

任何相同的值,在排序之后,保持原本的相对次序不变。选择排序,做不到稳定性冒泡、选择、插入(O(n2))归并排序:稳定性快排:做不到稳定性(论文级别的难度的)堆排:做不到稳定性O(NlogN)证明难,举反例追求稳定性的意义:在实际业务中,希望在一次排序后,不抹去原有序列的信息,比如下例。先按照身高排序,再按照年龄排序,稳定性的排序算法可以保证“幺”和“小明”身高信息...

2019-03-16 10:52:51 696

原创 快排与堆排

partition的快排:首先保留最后一个数,然后以这个数作为比较数,进行partition。partition有三个指针,分别是less,more,currentless初始位于-1处more初始位于7处current从左至右遍历if(current&lt;比较数)swap(current++,++less)注:++a表示取a的地址,增加它的内容,然后把值放在...

2019-03-15 10:39:59 260

原创 递归、master公式与归并排序(merge)思想

tip1:额外空间复杂度,即实现一个算法是否还需要给定空间以外的空间:O(1)的额外空间复杂度是实现算法时,再只需要几个额外的变量,就可以实现算法;O(N)的额外空间复杂度是额外申请一个数组tip2:C++中作二分时,总是前多后少。例如数组容量为5,那么5/2=2,索引自0开始,故012/34递归:说到递归就不得不提到栈,因为递归的过程就是压栈与出栈的过程。以归并排序为例...

2019-03-14 10:28:23 446

原创 三种排序算法(冒泡排序,选择排序,插入排序)

1.冒泡排序流程:在一个数组中,第1个数与第2个数比,第2个数与第3个数比,第3数与第4个数比,若前面比后面大,则将两个位置的数互换。因此,每次会将最大值推向最右边,即坐标索引为N-1处。当N-1处的元素敲定后,则继续从0位置处推,推至N-2处,如此反复。N+N-1+N-2......,时间复杂度为O(N2)2.选择排序选择排序,先将维度为N的数组中的最小值遍历找到,放置索引为0处...

2019-03-14 09:10:13 867

原创 cin+getline浅解

c++的cin一直十分迷糊,但cin在笔试中应用频率很高,因此来详细地整理一下其用法及原理。cin是类istream类的对象,主要用于从标准输入读数据。输入缓冲区:从键盘输入字符串的时候 需要敲一下回车 才能将这个字符串送入缓冲区 敲入的回车键也会被转换为换行符\n,这个换行符会被存储在cin的缓冲区,并被当做一个字符来计算。缓冲区中有数据时,cin才会读取,否则不会读取。cin可...

2019-03-13 23:31:52 293

转载 VS注释与取消注释快捷键

最近在使用VS2010开发openCV,突然发现想全部注释时找不到注释的快捷键,网上查了下,原来很简单,只是需要使用组合键。注释:        先CTRL+K+C取消注释: 先CTRL+K+UVS2017...

2018-03-14 11:36:42 60059 4

空空如也

空空如也

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

TA关注的人

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