自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 资源 (1)
  • 收藏
  • 关注

原创 秋招反思

从去年(研二)暑假确定要找C++方向,本科花了很多时间在安卓上,研一的时候花了一部分时间在机器学习上,实验室项目上,帮别人做作业(主要是留学生作业),总体来说方向非常乱,如果长期能坚定一个方向,秋招估计会简单很多,毕竟面试的时候很多以前学的东西用不上,大概去年2017.9-2018.2,这段时间一直复习计算机基础(数据结构(剑指offer(必刷),leetcode),计算机网络<<Tc...

2018-10-12 00:31:12 232 1

原创 Morris先序遍历实现空间复杂度为O(1)

先序的遍历这里的实现是根,左,右。从根出发如果其左孩子不为空           从左孩子出发,一直往右边走(迭代获取其右孩子),如果其右孩子能走到尾部,即n=n->right经过若干次之后n为空           说明当前孩子没有访问过,否则认为当前孩子已经被访问过,则把当前节点设置为当前节点的右孩子。如果左孩子为空            则返回到当前节点的上一个节点

2018-01-12 10:02:23 368

转载 awk的用法

awk 用法:awk ' pattern {action} '  变量名    含义 ARGC   命令行变元个数 ARGV   命令行变元数组 FILENAME   当前输入文件名 FNR   当前文件中的记录号 FS   输入域分隔符,默认为一个空格 RS   输入记录分隔符 NF   当前记录里域个数 NR   到目前为止记录数 OFS   输出域

2018-01-08 09:42:22 314

原创 回文串的处理

回文串要添加一些辅助字符#,就是在字符串之间添加#这个辅助字符,目前这种做法主要的一个优化是 比如asbsa这个字符串。如果左边的s的回文序列求出来了,右边的s可以根据左边的s来求int p(char*str, int n) {if (n return n;}int newN = 2 * n + 1;char*newstr = new char[newN];for

2017-12-12 20:43:38 323

原创 平衡二叉树java实现

平衡二叉树相对于普通的二叉搜索树它的特点是左右孩子的高度不能超过1,一个节点的高度=max(左孩子的高度,右孩子的高度)+1。一般来说有不平衡有四种情况‘,假设当前节点叫node,左孩子叫nodeLeft,左孩子的左孩子叫nodeLeftLeft,左孩子的右孩子nodeLeftRight,相应右边有,nodeRight,        nodeRightRight,  nodeRightL

2017-12-11 00:17:06 1010

原创 B树和B+树的总结

一个B树上的节点,最多包含(2m-1)个插入的数据,这些数据可以构成2m个区间,所以个节点最多2m个孩子,也可以没有孩子,没有孩子的节点为叶子节点。插入1.插入一个数据key2.如果目前的节点是叶子节点,则根据关键字大小直接插入到关键字列表里面,如果碰到某个节点关键字的数量等于2m-1,则分裂节点3.如果目前的节点是内部节点,则根据关键字大小找到适合存放当前关键字的孩子节点,进

2017-12-10 11:09:57 314

转载 数据库为什么用B+树

作者:打码酱链接:https://www.zhihu.com/question/62406977/answer/219108182来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。其实主要原因就是减少读写磁盘的次数。其它答主都已经回答了,我这里画蛇添足(把为什么三个字好好解释一番),较为详细的具体解释一下,不对的地方,还请海涵并敬请赐教。

2017-12-08 14:55:37 2445

转载 linux文件系统简介

文件系统是linux的一个十分基础的知识,同时也是学习linux的必备知识。    本文将站在一个较高的视图来了解linux的文件系统,主要包括了linux磁盘分区和目录、挂载基本原理、文件存储结构、软链接硬链接、和常见目录的介绍。相信有了这些知识对于深入的学习linux会有一定的帮助。文章例子主要是基于ubuntu发行版。    如有不对之处请大家多多指出。1.Linux

2017-12-08 12:02:28 179

原创 文件系统分区的概念

硬盘划分主分区、扩展分区、逻辑分区、活动分区有什么不同?2011/12/27 19:48:46来源:PC6整理作者:佚名我要评论(0)很多人都会给硬盘进行分区操作,也知道系统盘一般装于C盘,其它盘存储软件、文档、电影等资料。感觉通常我们使用硬盘分区工具给硬盘划分区域时就像切蛋糕一样,对不对?那么你知道这些分区之间还有主分区、扩展分区、逻辑分区、活动分区四种类型的

2017-12-08 11:41:59 595

原创 各种排序算法的代码

快速排序void quitSort(int*a, int l, int h) {if (l >= h) {return;}int low = l;int high = h;int key = a[l];while (low while (high > low&&a[high]>key) {--high;}if (low == high) {

2017-12-03 23:41:16 287

转载 ubuntu自定义ip网络配置

我使用的是Ubuntu14.04系统,今天早上一开电脑突然发现自己电脑上不了网络,ifconfig什么地址都没有,ping其他主机就提示Ubuntu network is unreachable。当时就比较晕,昨天也没做什么呀。然后我发现Ubuntu14.04 X window自带管理网络连接的icon不见了,然后花了点时间想恢复它(结果没有成功),后来通过以下步骤恢复了网络:

2017-11-29 11:12:17 573

原创 llvm源码父类的设计方式以及其他设计方式

llvm源码类的设计方式有些地方还是很精妙的,下面这个类有很多枚举类型,这个类真实的数据也就是Data1和Data2,Data1和Data2除了保存了两个指针之外还隐藏了一个枚举变量,这样做节省了内存,能这样做的原因是llvm::PointerIntPair 里面的void*的地址值是个对齐的地址,也就是说void*的值至少是4的倍数或者4以上的数字,但是这个数字肯定是2的幂。另外void*也有另

2017-09-26 20:00:05 322

原创 llvm内存分配

下面是llvm分配内存的源码,总结一下来说llvm分配内存是在一块已经知道的内存上分配,而不是由直接由malloc和new分配内存,底层也是通过malloc分配一块内存,通过malloc分配了一块内存,然后再管理这块分配的内存,管理的方式跟vector管理其元素的方式类似,可以把这块内存当成数组来看待,分配的内存知道其内存的位置和大小。下面的代码是分配内存的函数。另外用一个vector管理所有的内

2017-09-26 11:25:49 1639

原创 LLVM源码--PointerIntPairInfo类

PointerIntPairInfo类是个比较特殊的类,这个类没有成员,是辅助PointerIntPair类,而PointerIntPair只有一个成员,这个成员的类型是个unsigned int Value,   PointerIntPairInfo定义了了几个枚举值,这几个枚举值类型是unsigned int。它们的作用是用来提取Value中的信息,Value是个unsigned int ,V

2017-09-25 16:31:04 427

原创 2017华为软件精英挑战赛-我们组的解法

华为软件精英,启发式搜索,遗传

2017-06-03 13:00:00 1285

原创 C++调用函数是如何返回临时对象的

请看如下代码#include "stdafx.h"#includeusing namespace std;class INT {friend ostream& operatorpublic:INT(int i) :m_i(i) {cout }INT(const INT&other) {this->m_i = other

2017-03-07 18:03:25 2231

原创 java源代码 Reference和ReferenceQueue分析

这是我个人对源码的理解,也希望大家批评指正。Reference主要是负责内存的一个状态,当然它还和java虚拟机,垃圾回收器打交道。Reference类首先把内存分为4种状态Active,Pending,Enqueued,Inactive,一般来说内存一开始被分配的状态都是Active,Pending大概是指快要被放进队列的对象,也就是马上要回收的对象,Enqueued就是对象的内存已经被回收了,

2017-02-26 22:50:28 5019

原创 Java方法中加泛型与不加区别

void f(List l){}@Testpublic void g(){List j =new ArrayList() ;f(j);System.out.println("hello");}上面运行是正确的  void f(List  l){}@Testpublic void g(){//List  j =new ArrayList

2016-03-29 00:06:07 3487 1

原创 ACM学习-动态规划-背包问题

// ACM学习-动态规划-背包问题.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#includeusing namespace std;int num, max_weight, max_volume;int v[6], w[6], c[6], t[6];int f[6][501][101];int s[6][5

2015-10-02 14:23:48 425

原创 ACM学习-破坏行动-最大网络流

// ACM学习-破坏行动-最大网络流.cpp : 定义控制台应用程序的入口点。//#define _CRT_SECURE_NO_WARNINGS #include "stdafx.h"#include#include#include#includeusing namespace std;long n, m, s, t;//记录节点数,管道数,A

2015-09-30 21:48:06 464

原创 ACM学习-最大网络流

// ACM学习-最大网络流.cpp : 定义控制台应用程序的入口点。//总体是通过一次一次迭代,每次迭代,首先建立一个空队列,再把//源点加进去,从源点出发找到由它出发的边组成的链表的头,遍历该链表//如果链表中的边的容量没有到达上限且目的点没有被访问过,我们就把它加入//队列中,且记下该点前缀,依次从队列中取元素直到队列为空,或者到达终点#include "stdafx.h

2015-09-19 12:30:52 682

原创 ACM学习-自己写割点

// ACM学习-自己写割点.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#includeusing namespace std;const int v = 4;int edge[v][v] = {{ 0, 1, 1, 0 },{ 0, 0, 0, 1},{ 1, 0, 0, 0 }, { 1, 1, 0, 0}

2015-09-19 12:28:34 378

原创 ACM学习-进化树问题

// ACM学习-进化树问题.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#includeusing namespace std;long M[100][100];//记录树的差异程度表long  sum;//记录树的节点个数和规模int _tmain(int argc, _TCHAR*

2015-09-19 12:27:07 351

原创 C++,传递多个参数

include "stdafx.h"#include#include#includeusing namespace std;#includetemplateNT sum(int count,NT data1 ...)//累加{va_list arg_ptr;//参数列表的指针va_start(arg_ptr, count);//限定从

2015-09-13 11:30:53 3335

原创 C++---处理宽字符

#include "stdafx.h"#include#include#includeInt main(){//setlocale(LC_ALL,"chs");//wchar_t *p=L"粗粗1256ghfghhhhhhhhhhhhhhhhhhhhhh465";//wcout//cout//return 0;//}

2015-09-13 11:23:32 410

原创 C++-----利用括号递归实现的加减乘除

// 二叉树加减乘除.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#includeusing namespace std;struct record{ double  value; int pos;};double calc(double a1,double a2,char c){

2015-09-13 11:12:52 919

原创 C++-----自己写的哈希表

Node.CPP#pragma oncetemplateclass Node{public:public:    int key;int key1;T data;int count;Node *panother;};Nodeh#include "StdAfx.h"#include "Node.h"MyHash.

2015-09-13 11:09:36 903

原创 C++----自己实现的链表

#pragma oncetemplateclass Node{public :T t;Node*pNext;};#include "StdAfx.h"#include "Node.h"#pragma once#include"Node.h"#includeusing namespace std;template

2015-09-13 10:38:04 357

原创 C++ 利用类模板---类继承形成多态----的一个异常处理结构

#include "stdafx.h"#includeusing namespace std;templateclass wrong{public:virtual void show(){cout}};templateclass small:public wrong{public :int a;small(int d)

2015-09-13 10:04:58 318

原创 C++虚函数表

// 尹成学习虚函数表.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#includeusing namespace std;typedef void(*Fun)(void);class father{public:virtual void swim(){cout}void play(){cout

2015-09-13 09:54:05 367

原创 BufferedOutputStream用法

BufferedOutputStream这个类其实很简单,主要是里面包含了一个8192个字节的缓冲区,可能随着以后版本的变化大小也会变化。new BufferedOutputStream(OutputStream out)这个构造函数默认分配的就是8192个字节的byte[]数组,即缓冲区,如果要自己分配缓冲区大小可以调用构造函数new BufferedOutputStream(OutputStr

2015-09-05 23:54:14 1787

原创 ACM学习-匈牙利匹配

匈牙利匹配先说一种简单情况,多了也是一样,比如A,B,C找对象,一开始A问B有没有对象,B说没有,OK,A告诉B以后你的对象是我,如果C也开始在周围(相连的节点)找对象,假如找到B,发现B已经有对象,就问B你周围有人单身吗,B发现A单身,就告诉A以后你的对象是我,否则再去询问A周围有没有人单身,依次类推下去,一旦找到类似A这样的单身B必须忍痛割爱承认以后他的对象是C。总结起来是这样的,一旦有节点找

2015-08-29 10:42:35 730

原创 ACM学习-图双连通子图

// ACM学习-割点和桥.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#include#include#includeusing namespace std;const int v = 13;int edge[v][v] = {{ 0, 1, 1, 0, 0, 1, 0, 0, 0, 0

2015-08-25 11:25:48 696

原创 ACM学习-割点和桥

// ACM学习-割点和桥.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#includeusing namespace std;const int v = 13;int edge[v][v] = {{0,1,1,0,0,1,0,0,0,0,0,1,0},{1,0,1,1,0,0,0,1,0,0,0,0,1},

2015-08-24 22:13:43 907

原创 2015-8-19数据结构学习-哈夫曼树

// 哈夫曼树.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#define N 6#define M 2*N-1#define EPS 1e-5#define random(x) (rand()%x)using namespace std;typedef char datatype;typ

2015-08-19 17:27:25 396

原创 2015-8-18数据结构-动态规划-矩阵乘法次数最少

数据结构-动态规划-矩阵乘法次数最少#include "stdafx.h"#include#includeusing namespace std;  void MatrixChain(int p[], int n,int m[][6],int s[][6]){  int i,j,r,k,t;  for(int i=0;i        m[i][i]=0;

2015-08-18 18:35:58 1165

原创 2015-8-18数据结构-分冶-整数划分问题

#include "stdafx.h"#include#includeusing namespace std;//把n划分为若干等份,满足:最大加数int cal_unit_count(int n,int m){if(mreturn 0;}if(m==1||n==1){return 1;}else if(m>n){return cal_unit_

2015-08-18 11:31:27 388

原创 SQL学习笔记

建表create table userinfo(id int primary key not null identity (1,1),[name] char(20) unique,age  int  check(age>10),sex  char(2))create table love1 (id int primary keyidentit

2015-08-17 15:02:40 367

原创 乘法通过查表实现

本文主要通过小学学的99乘法表实现// 乘法原始实现.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#include#includeusing namespace std;int array_result[10][10]={{0,0,0,0,0,0,0,0,0,0},{0,1,2,3,4,5

2015-08-04 15:12:25 631

原创 C++new和delete重载

本文主要介绍new和delete在全局和类里面的重载,以及重载的一些细节#include "stdafx.h"#include#include#includeusing namespace std;void operator delete(void *p)// p 要释放的内存首地址{ cout free(p);}; void

2015-08-04 12:24:31 440

vc++支持2007

vc++支持2007

2013-10-04

空空如也

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

TA关注的人

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