自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

叶赫那拉坤的博客

有梦想就去努力实现,也许现在我不够强大,但我每天都在进步

  • 博客(42)
  • 收藏
  • 关注

翻译 Ubuntu下onos安装笔记

说明: 对ONOS早有耳闻,迟迟不敢碰触,只在ryu的平台上接触SDN,趁着毕业前有点空闲时间,接手ONOS。机器OS版本:ubuntu 16.04安装工欲善其事,必先利其器,搞软件开发更是深知“talk is easy, code it”的重要性,进入安装正题,主要还是参考onos wiki。ONOS ONOS (Open Network Operating System). ONOS

2017-11-01 22:02:04 5784 4

原创 Linux:面试常被问到的命令(持续更新)

Linux常见的命令

2017-09-06 20:20:51 4572 3

原创 语法:C语言中printf函数的返回值

平时真不怎么关注printf的返回值,一般是直接调用printf格式化输出,今天做腾讯的笔试题发现了一个知识漏洞,特此记录。 首先,题目是这样的:int f(int a, int b, int c){ return 0;}int main(){ return f(printf("a"),printf("b"),printf("c"));}问上述程序的输出结果,自以为pri

2017-09-02 15:39:08 5734 2

原创 语法:c++对关于空指针0/NULL/nullptr三者的演变

字面意义上的解释:0:整型常量 NULL:预处理符号 nullptr:空指针类型常量其中前两者在C中出现,最后一个在C++11中出现。我们平常会使用这三个符号来表示空指针,但是他们之间还是有许多差别。NULL 声明在cstdlib中:  #ifdef __cplusplus  #define NULL 0  #else=  #define NULL ((void *)0)  #end

2017-09-02 09:23:40 2086

转载 一个常见的编程题(C++版)

华为历年经典笔试题解析

2017-08-21 18:32:45 1279

翻译 语法:STL中的有关二分查找的算法

STL加入C++11标准为C++注入了新的活力,其中提出的泛型编程为C++程序带来了翻天覆地的变化,一些泛化的算法实现让编程变得简单高效。STL 中有关二分查找的算法主要有三个:lower_bound、upper_bound、binary_search。参照《STL源码分析》对三个算法做个笔记。lower_bound指向一个前闭后开区间[first,last)中大于等于指定值value的最小元素坐

2017-08-20 09:59:23 492

原创 算法:C++实现二分查找

事出有因,昨晚内推笔试题,采用遍历的方式提示耗时,由于系统原因(忍不住再次吐槽一下考试系统,估计是单线程队列模式),本地测试通过但是系统提交不上去,好不容易提交上去发现没通过全部的测试用例,当考虑用二分查找方式实现时时间已耗完。题目:新兵入队,编号从1开始依次递增(10个人的话编号是1-10),共分成N个队伍,指定每个队伍中的人数并分配新兵(按照编号顺序),然后随机选取Q个测试qi(i=1-Q),指

2017-08-20 09:25:03 594

转载 算法:C++实现先递增后递减队列的最值和单调递增队列的绝对值最小的值

题目1:在一个先递增后递减的整型数组中,找出最大的数的下标;题目2:在一个单调递增的整型数组中,找出绝对值最小的数的下标;分析:乍看这两个题目似乎没有什么联系,但是仔细思考后我们可以转化为类似的一个问题,如果把题目2中的所有负数去绝度值,就变成了一个先递减后递增的整型数组中,找

2017-08-17 21:40:15 2538

原创 语法:C++中的const变量“不变”与“变”

事出有因,附上代码:#include<iostream>int main(){ //volatile const int i=10; const int i=10; int *j=const_cast<int*>(&i); *j=2; std::cout<<&i<<" "<<j<<std::endl; std::cout<<i<<" "<<*j<<s

2017-08-14 19:52:04 912

原创 算法:C++中的堆排序

堆中元素的排列方式分为两种:max-heap或min-heap,前者每个节点的key都大于等于孩子节点的key,后者每个节点的key都小于等于孩子节点的key。 由于堆可以看成一个完全二叉树,可以使用连续空间的array来模拟完全二叉树,简单原始的实现如下:#include<iostream>int heapsize=0;//全局变量记录堆的大小void heapSort(int array[

2017-08-13 16:08:06 486

原创 语法:C++标准库中的iomanip

iomanip在c++程序里面经常见到下面的头文件#include ,io代表输入输出,manip是manipulator(操纵器)的缩写(在c++上只能通过输入缩写才有效。)

2017-08-10 16:32:09 2110 1

原创 算法:C++实现BCD进制转换

BCD转化

2017-08-10 16:15:35 1032

原创 算法:C++实现电话号码分身

题目:首先将电话号码中的每个数字加上8取个位,然后使用对应的大写字母代替 (”ZERO”, “ONE”, “TWO”, “THREE”, “FOUR”, “FIVE”, “SIX”, “SEVEN”, “EIGHT”, “NINE”), 然后随机打乱这些字母,所生成的字符串即为电话号码对应的分身。思路:通过这些单词我们会发现有些字母只出现在特定的单词中,例如“Z”只出现在“ZERO”这个单词中,那么

2017-08-09 10:45:01 792

原创 算法:C++实现O(n)复杂度内查找第K大数

题目:是在一组数组(数组元素为整数,可正可负可为0)中查找乘积最大的三个数,最后输出最大乘积。 从国题目我们知道只有两种结果存在:1)三个最大的正整数相乘;2)一个最大的正整数和两个最小的负数相乘。所以我们需要找出数组中最大的三个数的乘积m,然后与数组中最小的两个数相乘再与最大的数相乘的结果n,然后比较m,n,选出最大的数即为最终的结果。 大神无处不在,参考代码牛客网大神分享。#include

2017-08-02 11:06:50 2299

原创 算法:C++实现大数相乘

大数相乘,是指那些相乘结果或是乘数本身用long long类型都会溢出的数字,通常这些数字都通过string类型进行表示,借助于可动态调整大小的数据结构(vector,string,deque)模拟实现数字的乘法操作。

2017-08-02 08:53:32 10479

原创 算法:C++实现动态规划中的几个典型问题

动态规划的思想在程序设计中占有相当的分量,动态规划的主要思想就是把大问题划分为小问题,通过求解小问题来逐渐解决大问题。 满足动态规划思想的问题具备两个典型特征: 最优子结构:就是说局部的最优解能够决定全局的最优解,最优解的子问题也是最优的。 子问题重叠 :就是说大问题划分为小问题时,并不是每次都是新问题,有的小问题可能已经在前面的计算中出现过。 下面介绍几个编程人员笔试常遇到的动态规划问

2017-07-31 18:49:27 4644 1

原创 数据结构:大数据索引从二叉查找时到B+树

对数据结构有了解的小伙伴一定知道二叉树、二叉搜索时、平衡二叉搜索树、红黑树、B-树、B+树……等会儿,有点蒙蒙的感觉,出现即合理,那他们各自的优势在哪?最近在复习数据结构,查找了一些资料,现在整理一下,希望我没有理解错,再就是对看这篇文章的人有一丢丢帮助。二叉树: 单纯的二叉树并没有什么太多吸引人的地方,只是将数据按照树状结构组织在了一起,对于非连续的数据的存储,相比数组来说会节省非常可观的空间

2017-07-30 11:15:22 520

原创 算法:C++实现快速排序&归并排序

快速排序 归并排序

2017-07-13 08:26:21 417

原创 算法:C++实现二叉树遍历(递归、非递归)

完成二叉树创建并消除节点值相同的节点,然后分别采用前序中序后序三种方式输出结果。#include<iostream>struct Node{ int value; Node *left; Node *right; Node(int data):value(data),left(NULL),right(NULL){}};void inertNode(Node *no

2017-07-03 22:01:58 14494 1

原创 语法:C++中的vector详解

vector是C++标准库中的类,可以理解为长度可自动调节的数组,是C++标准库中众多容器(container)中的一个,以序列的方式维护其中的变量集合,在使用vector之前需添加头文件< vector >。vector作为一种容器,具有size(),begin(), end()等方法。

2017-06-15 15:23:37 1332

原创 程序员需具备的编程规范

编程规范

2017-06-15 09:31:00 505

原创 C++常用知识点汇总(基础)

研究生期间做研究一直用Python,下学期面临找工作压力,这几天抽时间复习了一下C++,简单做了一下笔记,以备不时之需。函数函数模板: 只适用于函数体相同、函数的参数个数相同而类型不同的情况,如果参数的个数不同,则不能用函数模板函数重载: 参数的个数和类型可以都不相同。但不能只有函数的类型不同而参数的个数和类型相同。默认参数: 实参与形参的结合是从左至右顺序进行的。因此指定默认值的参数

2017-06-06 15:12:35 17082 2

翻译 linux网卡命名规则变为eno分析?

起因:自己装了最新版本的ubunt发行版,今天发现无法上网,在解决联网故障时发现网卡不再是传统的eth0的方式,本机显示为eno1。奇了个怪了,纳了个闷了,google一探究竟! 查看本机ubuntu版本命令: cat etc/issue 为什么改名呢?参考Predictable Network Interface Names可预测的网络接口命名 自从 v197 systemd/ud

2017-03-30 16:22:38 17041

原创 Ubuntu下nodewebkit开发环境的安装方法

通过存放nwjs镜像的路径nwjs io可以下载不同版本的镜像文件,也可以通过Github下载最新的镜像文件。 本人使用Github下载最新的nwjs版本到本地:nwajs-v0.21.3-linux-x64.tar.gz 然后解压:tar -xzf Downloads/nwjs-v0.21.3-linux-x64.tar.gz进入目录:cd nwjs-v0.21.3-linux-x64/测试n

2017-03-29 15:04:27 519

转载 语法:Python中的logging模块

新年第一天,祝大家元旦快乐!偷个小懒,怒转一篇优质好文。编程时为了方便追踪调试程序中的bug,我们通常借助于日志分析来快速定位程序出现的错误,python作为最活跃的一门高级编程语言(之一),自然有相应的logging module。 当然精确无误的使用logging只能去官网了HOWTOs文档了,如果不想看英文又想快速学习基础用法,那只能是这篇快速实战教程了(个人理解),再此谢过推酷Pytho

2017-01-01 16:08:43 422

原创 算法:Python实现dijkstra最短路由

Dijkstra算法:又称迪杰斯特拉算法,迪杰斯特拉算法是由荷兰计算机科学家狄克斯特拉于1959 年提出的,因此又叫狄克斯特拉算法。是从一个顶点到其余各顶点的最短路径算法,解决的是有向图中最短路径问题。迪杰斯特拉算法主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止百度百科。 注意:Dijkstra算法不能处理包含负边的图# dijkstra算法实现,有向图和路由的源点作为函数的输入,最

2016-12-28 09:47:17 21733 7

转载 杂记

本文只是满足个人兴趣爱好,方便日后查询开源编辑器Atom安装卸载教程:atom安装Dell xps系列开启\关闭scroll lock:参考联想笔记本

2016-12-10 19:53:51 565

原创 Ubuntu系统源码安装SDN控制器之ryu

宿主机系统:Ubuntu14.04最直接最安全的方式参考ryu官网ryu官网:如果按照上述方式操作成功了,可以不必往下看了。如果和我一样很不幸,那就继续参考ryu源码安装:到这我是成功了,如果git 克隆的时候连接不上,可以尝试将https 换成http 或git。如果到这一步,你比我还不幸,只能祭上我的秘籍(pip安装,之前成功的方法,相对麻烦)了。sudo apt-get updatesud

2016-12-10 14:12:04 2613

原创 Ubuntu系统中切换python版本

长话短说,本人系统装有python2.7 (ubuntu14.04自带)和python3.4两个版本,python3.4是自己安装的,在运行相关软件的时候会提示有关python版本差异的错误,需要进行版本切换。切换的具体方法如下:python2.7 to python3.4 首先删除目录 /usr/bin/ 下的python link版本 cd /usr/bin sudo rm -rf

2016-12-09 21:31:49 527

原创 算法:Python实现中国剩余定理

中国剩余定理(Chinese Remainder Theorem-CRT):又称孙子定理,是数论中的一个定理。即如果一个人知道了一个数n被多个整数相除得到的余数,当这些除数两两互质的情况下,这个人就可以唯一的确定被这些个整数乘积除n所得的余数。 维基百科上wiki:The Chinese remainder theorem is a theorem of number theory, which

2016-12-08 09:12:20 5857

原创 算法:Python递归实现走迷宫

什么是递归?简单地理解就是函数调用自身的过程就称之为递归。什么时候用到递归?如果一个问题可以表示为更小规模的迭代运算,就可以使用递归算法。迷宫问题:一个由0或1构成的二维数组中,假设1是可以移动到的点,0是不能移动到的点,如何从数组中间一个值为1的点出发,每一只能朝上下左右四个方向移动一个单位,当移动到二维数组的边缘,即可得到问题的解,类似的问题都可以称为迷宫问题。 在python中可以使用l

2016-12-07 16:14:02 15990 2

转载 SDN资料整理

OpenFlow处理流程SDNlabOpenFlow数据结构介绍 OpenFlow各个版本的白皮书汇总OpenFlow白皮书 SDN 控制器框架ryu介绍 ryu控制器 mininet本地化安装方法mininet安装,注意从github上下载资源的时候,如果使用命令git clone git://xxxxxx出现问题,就改为git clone http://xxxxxx。 OVS

2016-11-28 15:42:51 873

原创 语法:Python中的引用和副本

实践才是最好的老师,对于程序员来说可能更为重要。首先列出在编码中遇到的问题,给出一个列表nums=[1,2,3,3,3,4],要求将这个列表中值为3的元素删除,计算剩下列表的长度。题目并不难,一个思想就是遍历list元素,一旦该元素属于这个列表,从该链表中删除,因为链表是可覆盖对象,遍历完成后计算链表的长度即可。但是我在编码中发现了一个问题。nums=[1,2,3,3,3,4]for i in

2016-11-26 21:16:54 3760

原创 应用:Python实现简单聊天程序

需求:SCIENCE 和MOOD两个人软件专业出身,厌倦了大众化的聊天软件,想着自己开发一款简易的聊天软件,满足他们的个性化需求,又不失“专业水准”,Talk is easy, try to code it. 技术:socket,详细了解请参考推酷:python socket 语言:python尽管socket区分服务器和客户端,但是在聊天程序中两者是平等的关系,都是客户端程序。 Server

2016-11-21 19:21:21 9230 1

原创 算法:Python中的斐波那契数列实现

斐波那契数列的概念: 斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……摘自百度百科 Python代码实现:def fib(n): if n<=0: return Non

2016-11-21 15:59:29 838

原创 语法:Python中的修饰器@

在阅读源码时纠结于python中修饰器的原理,在推酷上发现一篇文章感觉讲的不错:python修饰器。还有一篇博客讲的挺好:Decorator深入详解,如果需要更为全面的了解,只能祭出我看到的这篇了,特别的靠谱。decorator全面讲解个人感觉使用修饰器由两种情况:一种是功能代码完成后需要添加辅助性功能(例如性能测试、日志记录、调试信息)时用到修饰器; 一种是在软件设计阶段根据实际功能需求添加修

2016-11-21 14:33:40 1021

翻译 分布式路由协议

路由收敛时间:从网络故障发生到所有路由器转发表达式达到一致所需要的时间 路由收敛可能会引起两个主要问题:路由黑洞和路由回路。分布式路由协议在常用在控制平面。网络中的涉及转发的每一个节点通过分布式算法计算推断各自的转发表。 这些分布式协议基于两个原则: 1、每个节点向它的邻居节点报告自己的路由信息; 2、一旦受到信息,每个节点核实是否需要更新自己

2016-11-16 14:39:28 4714 2

原创 语法:Python中的可覆盖对象与不可覆盖对象

Python中的可覆盖对象与不可覆盖对象python中的对象按照覆盖方式可以分为两类:可覆盖对象和不可覆盖对象:可覆盖对象:list,dictionary不可覆盖对象:int,string,float,tuple可覆盖对象一旦创建后还可以改变,响应的指向同一个对象引用的变量的内容随之改变;不可覆盖对象一旦创建后就不可以改变,这儿作了详细的解释。代码实例对于可覆盖对象@breakingcoder

2016-11-12 10:29:52 2031

翻译 Failure,Error,Fault之间的区别

通常我们对三者的使用不是那么的严格,但是有时在学术上需要态度严谨、字字斟酌,需要明确在什么情况下使用这个,在什么情况下使用另一个。引用文章【1】中做的解释,三者分别定义为:        Failure: 当服务偏离正常形态的时候的状态;        Error:让系统变为Failure状态的情况;        Fault:造成Error的根源,也就是说通常程序员称道的BUG。

2016-11-01 09:37:08 8769

转载 SDN之出现原因解析

软件定义网络(Software Defined Networking,SDN)作为一种新型的网络架构,正在大型的企业内部或是数据中心逐步取代传统的七层网络架构。同传统网络相比,SDN最本质的创新在于实现了网络控制层面和转发平面的分离。那么,相比传统网络,SDN的优势在哪?SDN在将来完全取代传统网络?        大数据和云计算的发展,实现了大量的服务器的虚拟化部署。服务器虚拟化可以通过资源

2016-10-31 16:11:34 2272

空空如也

空空如也

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

TA关注的人

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